unbound-generics-0.4.4: Support for programming with names and binders using GHC Generics
Copyright(c) 2014 Aleksey Kliger
LicenseBSD3 (See LICENSE)
MaintainerAleksey Kliger
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Unbound.Generics.LocallyNameless.Internal.GSubst

Description

A typeclass for generic structural substitution.

Documentation

class GSubst b (f :: Type -> Type) where Source #

Methods

gsubst :: Name b -> b -> f c -> f c Source #

gsubsts :: [(Name b, b)] -> f c -> f c Source #

gsubstBvs :: AlphaCtx -> [b] -> f c -> f c Source #

Instances

Instances details
GSubst b (U1 :: Type -> Type) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Internal.GSubst

Methods

gsubst :: Name b -> b -> U1 c -> U1 c Source #

gsubsts :: [(Name b, b)] -> U1 c -> U1 c Source #

gsubstBvs :: AlphaCtx -> [b] -> U1 c -> U1 c Source #

GSubst b (V1 :: Type -> Type) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Internal.GSubst

Methods

gsubst :: Name b -> b -> V1 c -> V1 c Source #

gsubsts :: [(Name b, b)] -> V1 c -> V1 c Source #

gsubstBvs :: AlphaCtx -> [b] -> V1 c -> V1 c Source #

(GSubst b f, GSubst b g) => GSubst b (f :*: g) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Internal.GSubst

Methods

gsubst :: Name b -> b -> (f :*: g) c -> (f :*: g) c Source #

gsubsts :: [(Name b, b)] -> (f :*: g) c -> (f :*: g) c Source #

gsubstBvs :: AlphaCtx -> [b] -> (f :*: g) c -> (f :*: g) c Source #

(GSubst b f, GSubst b g) => GSubst b (f :+: g) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Internal.GSubst

Methods

gsubst :: Name b -> b -> (f :+: g) c -> (f :+: g) c Source #

gsubsts :: [(Name b, b)] -> (f :+: g) c -> (f :+: g) c Source #

gsubstBvs :: AlphaCtx -> [b] -> (f :+: g) c -> (f :+: g) c Source #

Subst b c => GSubst b (K1 i c :: Type -> Type) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Subst

Methods

gsubst :: Name b -> b -> K1 i c c0 -> K1 i c c0 Source #

gsubsts :: [(Name b, b)] -> K1 i c c0 -> K1 i c c0 Source #

gsubstBvs :: AlphaCtx -> [b] -> K1 i c c0 -> K1 i c c0 Source #

GSubst b f => GSubst b (M1 i c f) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Internal.GSubst

Methods

gsubst :: Name b -> b -> M1 i c f c0 -> M1 i c f c0 Source #

gsubsts :: [(Name b, b)] -> M1 i c f c0 -> M1 i c f c0 Source #

gsubstBvs :: AlphaCtx -> [b] -> M1 i c f c0 -> M1 i c f c0 Source #