and `ap` is the new version, `Kind<F, (A) ->...
# functional
p
and
ap
is the new version,
Kind<F, (A) -> B>.ap(ff: Kind<F, A>)
, otherwise it’ll be
structure.ap(predicates).sequence()