Adding ap promise.
- Not entirely sure if ap is actually viable in this context, but it does seem to pass Applicative laws, which means either it does pass or the laws aren't well executed!?