do notation for applicative functors