start of eval module but not really
This commit is contained in:
parent
e0bf8fa795
commit
4da8aa6031
1 changed files with 30 additions and 0 deletions
30
src/Quox/Eval.idr
Normal file
30
src/Quox/Eval.idr
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
module Quox.Eval
|
||||||
|
|
||||||
|
-- todo list:
|
||||||
|
-- - understand nbe and use it
|
||||||
|
-- - take a proof of well-typedness as an argument
|
||||||
|
|
||||||
|
import Quox.Syntax
|
||||||
|
|
||||||
|
import Data.DPair
|
||||||
|
|
||||||
|
%default total
|
||||||
|
|
||||||
|
|
||||||
|
public export Exists2 : (ty1 -> ty2 -> Type) -> Type
|
||||||
|
Exists2 t = Exists (\a => Exists (\b => t a b))
|
||||||
|
|
||||||
|
public export SomeTerm : Type
|
||||||
|
SomeTerm = Exists2 Term
|
||||||
|
|
||||||
|
public export SomeElim : Type
|
||||||
|
SomeElim = Exists2 Elim
|
||||||
|
|
||||||
|
public export SomeDim : Type
|
||||||
|
SomeDim = Exists Dim
|
||||||
|
|
||||||
|
private some : {0 t : ty -> Type} -> t a -> Exists t
|
||||||
|
some t = Evidence ? t
|
||||||
|
|
||||||
|
private some2 : {0 t : ty1 -> ty2 -> Type} -> t a b -> Exists2 t
|
||||||
|
some2 t = some $ some t
|
Loading…
Reference in a new issue