fresh >>= \(IdType n) ->
let f = ("2lambda_"+++n) in
let fd = FunDecl p f args Nothing [] [ReturnStmt $ Just e] in
- let fe = FunExpr p f [] [] in
+ let fe = VarExpr p (VarDef f []) in
pure ([fd], fe)
unfoldL_ (FunExpr p f es fs) = flattenT <$> mapM unfoldL_ es >>= \(fds, es_)->
pure (fds, FunExpr p f es_ fs)