Module

Bound

Package
purescript-bound
Repository
benjamin-hodgson/purescript-bound

#substitute Source

substitute :: forall f a. Monad f => Eq a => a -> f a -> f a -> f a

#substituteVar Source

substituteVar :: forall f a. Functor f => Eq a => a -> a -> f a -> f a

#closed Source

closed :: forall f a b. Traversable f => f a -> Maybe (f b)

#Bound Source

class Bound :: ((Type -> Type) -> Type -> Type) -> Constraintclass Bound t  where

Members

  • subst :: forall f a c. Monad f => (a -> f c) -> t f a -> t f c

Instances

#flipSubst Source

flipSubst :: forall f t a c. Bound t => Monad f => t f a -> (a -> f c) -> t f c

#(=<<<) Source

Operator alias for Bound.subst (left-associative / precedence 1)

#(>>>=) Source

Operator alias for Bound.flipSubst (right-associative / precedence 1)

#substDefault Source

substDefault :: forall t f a c. MonadTrans t => Monad f => Monad (t f) => (a -> f c) -> t f a -> t f c

#Var Source

data Var b a

Constructors

Instances

#Scope Source

newtype Scope :: Type -> (Type -> Type) -> Type -> Typenewtype Scope b f a

Constructors

Instances

#unScope Source

unScope :: forall b f a. Scope b f a -> f (Var b (f a))

#fromScope Source

fromScope :: forall b f a. Monad f => Scope b f a -> f (Var b a)

#toScope Source

toScope :: forall b f a. Monad f => f (Var b a) -> Scope b f a

#abstract Source

abstract :: forall a b f. Monad f => (a -> Maybe b) -> f a -> Scope b f a

#abstract1 Source

abstract1 :: forall a f. Eq a => Monad f => a -> f a -> Scope Unit f a

#instantiate Source

instantiate :: forall a b f. Monad f => (b -> f a) -> Scope b f a -> f a

#instantiate1 Source

instantiate1 :: forall a b f. Monad f => f a -> Scope b f a -> f a

#splat Source

splat :: forall a b c f. Monad f => (a -> f c) -> (b -> f c) -> Scope b f a -> f c

#bindings Source

bindings :: forall a b f. Foldable f => Scope b f a -> Array b

#mapBound Source

mapBound :: forall a b c f. Functor f => (b -> c) -> Scope b f a -> Scope c f a

#mapScope Source

mapScope :: forall a b c d f. Functor f => (b -> d) -> (a -> c) -> Scope b f a -> Scope d f c

#foldMapBound Source

foldMapBound :: forall a b m f. Foldable f => Monoid m => (b -> m) -> Scope b f a -> m

#foldMapScope Source

foldMapScope :: forall a b m f. Foldable f => Monoid m => (b -> m) -> (a -> m) -> Scope b f a -> m

#traverseBound Source

traverseBound :: forall a b c f m. Traversable f => Applicative m => (b -> m c) -> Scope b f a -> m (Scope c f a)

#traverseScope Source

traverseScope :: forall a b c d f m. Traversable f => Applicative m => (b -> m d) -> (a -> m c) -> Scope b f a -> m (Scope d f c)

#traverseBound_ Source

traverseBound_ :: forall a b c f m. Foldable f => Applicative m => (b -> m c) -> Scope b f a -> m Unit

#traverseScope_ Source

traverseScope_ :: forall a b c d f m. Foldable f => Applicative m => (b -> m d) -> (a -> m c) -> Scope b f a -> m Unit

#hoistScope Source

hoistScope :: forall f g a b. Functor f => (forall x. f x -> g x) -> Scope b f a -> Scope b g a
Modules
Bound