Mikan
Safe HaskellNone
LanguageHaskell2010

Mikan.Utils.AffineHole

Description

Contexts with at most one hole.

Documentation

data AffineHole r a Source #

Constructors

ZeroHoles a

A constant term.

OneHole (r -> a) r

A term with one hole and the (old) contents.

ManyHoles

A term with many holes (error value).

Instances

Instances details
Applicative (AffineHole r) Source #

Note that AffineHole r is not a monad.

OneHole (h :: r -> a) >>= (k :: a -> AffineHole r b) = _ :: AffineHole r b

We are lacking an r to make use of h.

Instance details

Defined in Mikan.Utils.AffineHole

Methods

pure :: a -> AffineHole r a #

(<*>) :: AffineHole r (a -> b) -> AffineHole r a -> AffineHole r b #

liftA2 :: (a -> b -> c) -> AffineHole r a -> AffineHole r b -> AffineHole r c #

(*>) :: AffineHole r a -> AffineHole r b -> AffineHole r b #

(<*) :: AffineHole r a -> AffineHole r b -> AffineHole r a #

Functor (AffineHole r) Source # 
Instance details

Defined in Mikan.Utils.AffineHole

Methods

fmap :: (a -> b) -> AffineHole r a -> AffineHole r b #

(<$) :: a -> AffineHole r b -> AffineHole r a #