ap is consistent with bind.
ap is consistent with bind.
As with semigroups, monadic effects only change when their order is changed, not when the order in which they're combined changes.
As with semigroups, monadic effects only change when their order is changed, not when the order in which they're combined changes.
A series of maps may be freely rewritten as a single map on a composed function.
A series of maps may be freely rewritten as a single map on a composed function.
Lifted functions can be fused.
Lifted functions can be fused.
empty[A] is a polymorphic value over A.
empty[A] is a polymorphic value over A.
point distributes over function applications.
point distributes over function applications.
The identity function, lifted, is a no-op.
The identity function, lifted, is a no-op.
point(identity) is a no-op.
point(identity) is a no-op.
point is a left and right identity, F-wise.
point is a left and right identity, F-wise.
Lifted f applied to pure a is just f(a).
Lifted f applied to pure a is just f(a).
empty short-circuits its right.
empty short-circuits its right.
map is like the one derived from point and ap.
map is like the one derived from point and ap.
Lifted point is a no-op.
Lifted point is a no-op.
empty short-circuits throughout its join tree.