ap is for applicative functors
ap with map