Extra module:Control.Monad

Extra functions for Control.Monad. These functions provide looping, list operations and booleans. If you need a wider selection of monad loops and list generalisations, see monad-loops.
Separate the sum of weights into the WeightedT transformer. Weights are normalized after this operation.
Compute the weight and discard the sample.
Extract a subvalue of type part from the record. The default implementation searches for some value of the type part in record and returns that value. The default implementation typechecks iff there is a single subvalue of type part in record.
Extract a subvalue of type part from the record. The default implementation searches for some value of the type part in record and returns that value. The default implementation typechecks iff there is a single subvalue of type part in record.
This module defines some extra functions for Control.Monad.State.Lazy. This package really isn't the proper place for these, but we need them to be somewhere. TODO: patch transformers/mtl-2 with these functions.
Instances of this type are isomorphic to (Q,a) for some type Q (with Monoid Q).