data Foo = Foo {foo :: (Maybe Foo)}