Choose

The Choose effect is used for non-deterministic computations. With the Choose effect you can model computations which either:

Choose is actually a generalization of List where instead of “exploring” all the branches we might “cut” some of them. That behaviour is controlled by the Alternative[F] instance you use when running Choose.

For example if we take List to run a similar example as before, we get the list of all the accepted pairs: `> List((2,4), (3,3), (3,4), (4,2), (4,3), (4,4))`