graphted-0.1.0.1: Graph indexed monads.

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

Control.Applicative.Graph

Description

 

Documentation

class (GFunctor f, GPointed f) => GApplicative f where Source #

Minimal complete definition

gap

Associated Types

type Apply f (i :: p) (j :: p) :: p Source #

type Then f (i :: p) (j :: p) :: p Source #

type But f (i :: p) (j :: p) :: p Source #

Methods

gap :: Inv f i j => f i (a -> b) -> f j a -> f (Apply f i j) b Source #

gthen :: Inv f i j => f i a -> f j b -> f (Then f i j) b Source #

gthen :: (Apply f (Fconst f i) j ~ Then f i j, Inv f (Fconst f i) j) => f i a -> f j b -> f (Then f i j) b Source #

gbut :: Inv f i j => f i a -> f j b -> f (But f i j) a Source #

gbut :: (Apply f (Apply f (Pure f) i) j ~ But f i j, Inv f (Pure f) i, Inv f (Apply f (Pure f) i) j) => f i a -> f j b -> f (But f i j) a Source #

Instances

Applicative f => GApplicative * (GWrapped f) Source # 

Associated Types

type Apply (GWrapped f) (f :: GWrapped f -> * -> *) (i :: GWrapped f) (j :: GWrapped f) :: p Source #

type Then (GWrapped f) (f :: GWrapped f -> * -> *) (i :: GWrapped f) (j :: GWrapped f) :: p Source #

type But (GWrapped f) (f :: GWrapped f -> * -> *) (i :: GWrapped f) (j :: GWrapped f) :: p Source #

Methods

gap :: Inv (GWrapped f) f i j => f i (a -> b) -> f j a -> f (Apply (GWrapped f) f i j) b Source #

gthen :: Inv (GWrapped f) f i j => f i a -> f j b -> f (Then (GWrapped f) f i j) b Source #

gbut :: Inv (GWrapped f) f i j => f i a -> f j b -> f (But (GWrapped f) f i j) a Source #