Found that ifp must have lazy eval behavior, preparing to do CBN translation in the source semantics