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