perm-0.3.0.1: permutation Applicative and Monad with many mtl instances

Portabilitynon-portable
Stabilityexperimental
MaintainerAndy Sonnenburg <andy22286@gmail.com>
Safe HaskellSafe-Inferred

Control.Applicative.Perm

Description

 

Synopsis

Documentation

type Perm = PermTSource

The permutation applicative

runPerm :: Alternative m => Perm m a -> m aSource

Unwrap a Perm, combining actions using the Alternative for f.

liftPerm :: Applicative m => m a -> PermT m aSource

A version of lift that can be used with just an Applicative for m.

hoistPerm :: Monad n => (forall a. m a -> n a) -> PermT m b -> PermT n bSource

Lift a monad homomorphism from m to n into a monad homomorphism from PermT m to PermT n.