34 lines
743 B
Idris
34 lines
743 B
Idris
|
module AstExtra
|
||
|
|
||
|
import Quox.Syntax
|
||
|
import Quox.Parser.Syntax
|
||
|
import Quox.Typing.Context
|
||
|
|
||
|
prefix 9 ^
|
||
|
public export
|
||
|
(^) : (Loc -> a) -> a
|
||
|
(^) a = a noLoc
|
||
|
|
||
|
public export
|
||
|
FromString BindName where fromString str = BN (fromString str) noLoc
|
||
|
|
||
|
public export
|
||
|
FromString PatVar where fromString x = PV x noLoc
|
||
|
|
||
|
public export
|
||
|
empty01 : TyContext 0 0
|
||
|
empty01 = eqDim (^K Zero) (^K One) empty
|
||
|
|
||
|
|
||
|
anys : {n : Nat} -> QContext n
|
||
|
anys {n = 0} = [<]
|
||
|
anys {n = S n} = anys :< Any
|
||
|
|
||
|
public export
|
||
|
ctx, ctx01 : {n : Nat} -> Context (\n => (BindName, Term 0 n)) n ->
|
||
|
TyContext 0 n
|
||
|
ctx tel = let (ns, ts) = unzip tel in
|
||
|
MkTyContext new [<] ts ns anys
|
||
|
ctx01 tel = let (ns, ts) = unzip tel in
|
||
|
MkTyContext ZeroIsOne [<] ts ns anys
|