import Control.Applicative (liftA2) iota = foldr (liftA2 (:) . enumFromTo 1) [[]] main :: IO () main = do print $ iota [2, 3]