KC
Size: a a a
AG
S
KC
KS
KC
AG
R
KS
KC
AG
KS
R
AG
KS
AG
AG
data Pref : a -> List a -> a -> List a -> Type where
HereP : Pref x xs x xs
ShiftP : Pref x xs y (x::xs)
data Term : List (List Ty) -> List Ty -> Ty -> Type where
Var : Elem a g -> Term ph g a
Lam : Term ph (a::g) b -> Term ph g (a~>b)
App : Term ph g (a~>b) -> Term ph g a -> Term ph g b
Shut : Term (g::ph) [] a -> Term ph g (Box a) -- ~quasiquote
Open : Pref g ph d ps -> Term ph g (Box a) -> Term ps d a -- ~unquote01
w
data Pref : a -> List a -> a -> List a -> Type where
HereP : Pref x xs x xs
ShiftP : Pref x xs y (x::xs)
data Term : List (List Ty) -> List Ty -> Ty -> Type where
Var : Elem a g -> Term ph g a
Lam : Term ph (a::g) b -> Term ph g (a~>b)
App : Term ph g (a~>b) -> Term ph g a -> Term ph g b
Shut : Term (g::ph) [] a -> Term ph g (Box a) -- ~quasiquote
Open : Pref g ph d ps -> Term ph g (Box a) -> Term ps d a -- ~unquote01
AG