This module is a loose port of the Quantum::Entanglement
Perl module, which endows its host language with quantum-computationesque
effects. In this Haskell version this is done using an
arrow to take advantage of the arrow syntax for imperative-looking
code. The module has all the fun bells and whistles of quantum
computation, including entanglement and interference, even through
conditionals (which the Perl analog does not support). The arrow
is defined over any instance of MonadRandom, so if you want to
get especially crazy, you can experiment with what quantum computation
is like when observables include invoking continuations.
See the included example.hs for some simple examples of what
using this module looks like.