More simply > :t pure pure :: Applicative f => a -> f a > pure [1..5] [1,2,3,4,5] a must match a list of Nums, but then where did f go? Is ghci using some default instance?