-
Notifications
You must be signed in to change notification settings - Fork 0
/
zexp.agda
36 lines (33 loc) · 1.53 KB
/
zexp.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
open import prelude
open import core
-- cursor expressions
module hazelnut.untyped.zexp where
-- zippered types
data ZTyp : Set where
▹_◃ : (τ : Typ) → ZTyp
_-→₁_ : (τ^ : ZTyp) → (τ : Typ) → ZTyp
_-→₂_ : (τ : Typ) → (τ^ : ZTyp) → ZTyp
_-×₁_ : (τ^ : ZTyp) → (τ : Typ) → ZTyp
_-×₂_ : (τ : Typ) → (τ^ : ZTyp) → ZTyp
infixr 25 _-→₁_
infixr 25 _-→₂_
infixr 24 _-×₁_
infixr 24 _-×₂_
-- zippered expressions
data ZExp : Set where
‵▹_◃ : (e : UExp) → ZExp
‵λ₁_∶_∙_ : (x : Var) → (τ^ : ZTyp) → (e : UExp) → ZExp
‵λ₂_∶_∙_ : (x : Var) → (τ : Typ) → (ê : ZExp) → ZExp
‵_∙₁_ : (ê : ZExp) → (e : UExp) → ZExp
‵_∙₂_ : (e : UExp) → (ê : ZExp) → ZExp
‵_←₁_∙_ : (x : Var) → (ê : ZExp) → (e : UExp) → ZExp
‵_←₂_∙_ : (x : Var) → (e : UExp) → (ê : ZExp) → ZExp
‵_+₁_ : (ê : ZExp) → (e : UExp) → ZExp
‵_+₂_ : (e : UExp) → (ê : ZExp) → ZExp
‵_∙₁_∙_ : (ê : ZExp) → (e₂ : UExp) → (e₃ : UExp) → ZExp
‵_∙₂_∙_ : (e₁ : UExp) → (ê : ZExp) → (e₃ : UExp) → ZExp
‵_∙₃_∙_ : (e₁ : UExp) → (e₂ : UExp) → (ê : ZExp) → ZExp
‵⟨_,₁_⟩ : (e₁ : ZExp) → (e₂ : UExp) → ZExp
‵⟨_,₂_⟩ : (e₁ : UExp) → (e₂ : ZExp) → ZExp
‵π₁_ : (e : ZExp) → ZExp
‵π₂_ : (e : ZExp) → ZExp