:: Functor f => f a -> (a -> b) -> f b package:numeric-prelude

Using ApplicativeDo: 'fmap f as' can be understood as the do expression
do a <- as
pure (f a)
with an inferred Functor constraint.