(defun infinity () (infinity))
newtype Rec a = In { out :: Rec a -> a } y = \f -> (\x -> f (out x x)) (In (\x -> f (out x x)))