graphted-0.3.0.0: Graph indexed monads.

Copyright(c) Aaron Friel
LicenseBSD-3
MaintainerAaron Friel <mayreply@aaronfriel.com>
Stabilityunstable
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Control.MonadOr.Graph

Description

 

Synopsis

Documentation

class GMonadZero m => GMonadOr m where Source #

Graph indexed monad with a monoidal operation satisfying the left catch law.

See the typeclassopedia https://wiki.haskell.org/Typeclassopedia.

Minimal complete definition

gorelse

Associated Types

type Or m (i :: p) (j :: p) :: p Source #

The or operation (<|>) on the graph index.

Default instance: Or m i j = Combine m i j

type OrInv m (i :: p) (j :: p) :: Constraint Source #

An invariant on the indexes of Or.

Default instance: OrInv m i j = Inv m i j

Methods

gorelse :: OrInv m i j => m i a -> m j a -> m (Or m i j) a Source #

An associative binary operation (<|>).

Instances

(Alternative m, MonadPlus m) => GMonadOr * (GWrapped m) Source # 

Associated Types

type Or (GWrapped m) (m :: GWrapped m -> * -> *) (i :: GWrapped m) (j :: GWrapped m) :: p Source #

type OrInv (GWrapped m) (m :: GWrapped m -> * -> *) (i :: GWrapped m) (j :: GWrapped m) :: Constraint Source #

Methods

gorelse :: OrInv (GWrapped m) m i j => m i a -> m j a -> m (Or (GWrapped m) m i j) a Source #