Every monad is Applicative via:
let apply mf mx = mf >>= fun f -> mx >>| fun x -> f x
same as apply
apply