unbound-kind-generics-0.2.1.0: Support for programming with names and binders using kind-generics

Safe HaskellNone
LanguageHaskell2010

Unbound.Generics.LocallyNameless.Kind.Derive

Documentation

newtype AutoAlpha a Source #

Constructors

AutoAlpha 

Fields

Instances
Eq a => Eq (AutoAlpha a) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Kind.Derive

Methods

(==) :: AutoAlpha a -> AutoAlpha a -> Bool #

(/=) :: AutoAlpha a -> AutoAlpha a -> Bool #

Show a => Show (AutoAlpha a) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Kind.Derive

(Typeable a, GenericAlpha a, Show a) => Alpha (AutoAlpha a) Source # 
Instance details

Defined in Unbound.Generics.LocallyNameless.Kind.Derive

Methods

aeq' :: AlphaCtx -> AutoAlpha a -> AutoAlpha a -> Bool

fvAny' :: (Contravariant f, Applicative f) => AlphaCtx -> (AnyName -> f AnyName) -> AutoAlpha a -> f (AutoAlpha a)

close :: AlphaCtx -> NamePatFind -> AutoAlpha a -> AutoAlpha a

open :: AlphaCtx -> NthPatFind -> AutoAlpha a -> AutoAlpha a

isPat :: AutoAlpha a -> DisjointSet AnyName

isTerm :: AutoAlpha a -> All

isEmbed :: AutoAlpha a -> Bool

nthPatFind :: AutoAlpha a -> NthPatFind

namePatFind :: AutoAlpha a -> NamePatFind

swaps' :: AlphaCtx -> Perm AnyName -> AutoAlpha a -> AutoAlpha a

lfreshen' :: LFresh m => AlphaCtx -> AutoAlpha a -> (AutoAlpha a -> Perm AnyName -> m b) -> m b

freshen' :: Fresh m => AlphaCtx -> AutoAlpha a -> m (AutoAlpha a, Perm AnyName)

acompare' :: AlphaCtx -> AutoAlpha a -> AutoAlpha a -> Ordering

aeqDefK :: forall a. GenericAlpha a => AlphaCtx -> a -> a -> Bool Source #

fvAnyDefK :: forall g a. (GenericAlpha a, Contravariant g, Applicative g) => AlphaCtx -> (AnyName -> g AnyName) -> a -> g a Source #

closeDefK :: forall a. GenericAlpha a => AlphaCtx -> NamePatFind -> a -> a Source #

openDefK :: forall a. GenericAlpha a => AlphaCtx -> NthPatFind -> a -> a Source #

isPatDefK :: forall a. GenericAlpha a => a -> DisjointSet AnyName Source #

isTermDefK :: forall a. GenericAlpha a => a -> All Source #

nthPatFindDefK :: forall a. GenericAlpha a => a -> NthPatFind Source #

namePatFindDefK :: forall a. GenericAlpha a => a -> NamePatFind Source #

swapsDefK :: forall a. GenericAlpha a => AlphaCtx -> Perm AnyName -> a -> a Source #

lfreshenDefK :: forall m a b. (LFresh m, GenericAlpha a) => AlphaCtx -> a -> (a -> Perm AnyName -> m b) -> m b Source #

freshenDefK :: forall m a. (Fresh m, GenericAlpha a) => AlphaCtx -> a -> m (a, Perm AnyName) Source #

acompareDefK :: forall a. GenericAlpha a => AlphaCtx -> a -> a -> Ordering Source #

buildSubstName :: forall a b. (Typeable a, Typeable b) => Name a -> Maybe (SubstName a b) Source #

gsubstDefK :: forall a b. (GenericK a, GSubstK b (RepK a) LoT0, Subst b a) => Name b -> b -> a -> a Source #

gsubstsDefK :: forall a b. (GenericK a, GSubstK b (RepK a) LoT0, Subst b a) => [(Name b, b)] -> a -> a Source #