implement sequence with applicative instead of monad
fix bug in -ap
add test
add either