Portability | XXX |
---|---|
Stability | experimental |
Maintainer | Stephanie Weirich <sweirich@cis.upenn.edu> |
XXX write me
- rR1 :: forall ctx[a18LQ] a[a1FY]. Rep a[a1FY] => R1 ctx[a18LQ] (R a[a1FY])
- rR :: forall a[a1FY]. Rep a[a1FY] => R (R a[a1FY])
- data Name a
- rName1 :: forall ctx[a18QA] a[a18ML]. Rep a[a18ML] => ctx[a18QA] (R a[a18ML]) -> ctx[a18QA] (String, Integer) -> ctx[a18QA] Integer -> R1 ctx[a18QA] (Name a[a18ML])
- rName :: forall a[a18ML]. Rep a[a18ML] => R (Name a[a18ML])
- data AnyName = forall a . Rep a => AnyName (Name a)
- isBound :: Name a -> Bool
- isFree :: Name a -> Bool
- rAnyName1 :: forall ctx[a18Tc]. R1 ctx[a18Tc] AnyName
- rAnyName :: R AnyName
- name2 :: Rep a => Name a
- name3 :: Rep a => Name a
- name4 :: Rep a => Name a
- name5 :: Rep a => Name a
- name6 :: Rep a => Name a
- name7 :: Rep a => Name a
- name8 :: Rep a => Name a
- name9 :: Rep a => Name a
- name10 :: Rep a => Name a
- name11 :: Rep a => Name a
- name1 :: Rep a => Name a
- name2Integer :: Name a -> Integer
- name2String :: Name a -> String
- anyName2Integer :: AnyName -> Integer
- anyName2String :: AnyName -> String
- toSortedName :: Rep a => AnyName -> Maybe (Name a)
- integer2Name :: Rep a => Integer -> Name a
- string2Name :: Rep a => String -> Name a
- s2n :: Rep a => String -> Name a
- makeName :: Rep a => String -> Integer -> Name a
- getR :: Name a -> R a
- translate :: Rep b => Name a -> Name b
Documentation
Name
s are things that get bound. This type is intentionally
abstract; to create a Name
you can use string2Name
or
integer2Name
. The type parameter is a tag, or sort, which tells
us what sorts of things this name may stand for. The sort must
be an instance of the Rep
type class.
rName1 :: forall ctx[a18QA] a[a18ML]. Rep a[a18ML] => ctx[a18QA] (R a[a18ML]) -> ctx[a18QA] (String, Integer) -> ctx[a18QA] Integer -> R1 ctx[a18QA] (Name a[a18ML])Source
A name with a hidden (existentially quantified) sort.
name2Integer :: Name a -> IntegerSource
Get the integer index of a Name
.
name2String :: Name a -> StringSource
Get the string part of a Name
.
anyName2Integer :: AnyName -> IntegerSource
Get the integer index of an AnyName
.
anyName2String :: AnyName -> StringSource
Get the string part of an AnyName
.