instance Monad [] where return a = [a] (>>=) as f = concatMap f as