Cofree 也许是非空的

特定

data Maybe a = Just a
             | Nothing

我们有

data Cofree Maybe a
     = a :< Just (Cofree Maybe a)
     | a :< Nothing

这是同构的

data NonEmpty a
     = NECons a (NonEmpty a)
     | NESingle a