[] :: * -> *
join :: M (M a) -> M a
-- In Haskell ⊙ is "join" in "Control.Monad" join :: [[a]] -> [a] join = concat -- In Haskell the "return" function (unfortunate name) η :: a -> [a] η x = [x]