A chain of effectful
f-computations with composite result
Individual computations (lifted into
*. below) have their
own result types, which fit together in standard
Although these result types are lost in the composite type, the
computations can still be moved around within the list (see
firsts in the source code for examples). This allows their permutations
to be computed.
Build a tree (using
<|> for branching) of all permutations of the
computations. The tree shape allows permutations to share common prefixes.
This allows clever computations to quickly prune away uninteresting
branches of permutations.