Add (<*), (>*) and change ap to (<*>)
Change ap to <*>
Change ap to <*> and add guard.