total data Foo : Type where MkFoo : (Foo -> Foo) -> Foo