# Documentation

A chain of effectful `f`

-computations with composite result `a`

.
Individual computations (lifted into `Effects`

using `*.`

below) have their
own result types, which fit together in standard `Applicative`

fashion.
Although these result types are lost in the composite type, the
computations can still be moved around within the list (see `swap`

and
`firsts`

in the source code for examples). This allows their permutations
to be computed.

perms :: forall f a. Alternative f => Effects f a -> f aSource

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.