hobbits-1.1.1: A library for canonically representing terms with binding

PortabilityGHC
Stabilityexperimental
Maintaineremw4@rice.edu
Safe HaskellNone

Data.Binding.Hobbits.Internal

Description

This module is internal to the Hobbits library, and should not be used directly.

Synopsis

Documentation

newtype Name a Source

A Name a is a bound name that is associated with type a.

Constructors

MkName Int 

Instances

data Mb ctx b Source

An Mb ctx b is a multi-binding that binds exactly one name for each type in ctx, where ctx has the form Nil :> t1 :> ... :> tn.

Constructors

MkMb (MapC Name ctx) b 

Instances

Typeable2 Mb 
Show a => Show (Mb c a) 
NuElim a => NuElim (Mb ctx a) 

newtype Cl a Source

The type Cl a represents a closed term of type a, i.e., an expression of type a with no free (Haskell) variables. Since this cannot be checked directly in the Haskell type system, the Cl data type is hidden, and the user can only create closed terms using Template Haskell, through the mkClosed operator.

Constructors

Cl 

Fields

unCl :: a
 

data ExMember whereSource

Constructors

ExMember :: Member c a -> ExMember 

data ExProxy whereSource

Constructors

ExProxy :: MapC Proxy ctx -> ExProxy