Skip to content

Commit 3c11765

Browse files
committed
update Arith to use Fold2
1 parent c3f55f3 commit 3c11765

File tree

1 file changed

+4
-18
lines changed

1 file changed

+4
-18
lines changed

src/examples/Arith.agda

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ open import Syntax
1919
using (Sig; sig→ℕ; ∁; ν; ■; ↑; _•_; ext; id; Rename; Shiftable; Equiv;
2020
Relatable)
2121
open import Var
22+
open import Sig using (Result)
2223

2324
module examples.Arith where
2425

@@ -39,18 +40,7 @@ sig op-if = ■ ∷ ■ ∷ ■ ∷ []
3940
sig op-error = []
4041

4142
open import ScopedTuple using (Tuple; _✖_; zip)
42-
open import Fold Op sig
43-
44-
{-
45-
open import Map Op sig
46-
open import FoldFoldFusion Op sig
47-
renaming (_⨟ᶠ_≈_ to _⨟′_≈_)
48-
open import MapFusion Op sig using (QuoteShift; ABT-is-QuoteShift)
49-
open import FoldMapFusion Op sig
50-
using (fold-rename-fusion; fold-map-fusion-ext-FV; FoldShift; _⊢_⨟_≈_;
51-
_⊢ₐ_⨟_≈_; _⊢₊_⨟_≈_)
52-
renaming (_⨟_⩰_ to _′⨟_≈_)
53-
-}
43+
open import Fold2 Op sig
5444

5545
open import AbstractBindingTree Op sig renaming (ABT to AST)
5646
pattern $ n = op-num n ⦅ nil ⦆
@@ -90,7 +80,7 @@ bool? mv f
9080
... | _ = nothing
9181

9282

93-
eval-op : (op : Op) Tuple (sig op) (Bind (Maybe Val) (Maybe Val))
83+
eval-op : (op : Op) Tuple (sig op) (Result (Maybe Val))
9484
Maybe Val
9585
eval-op (op-num n) tt = just (v-num n)
9686
eval-op op-error tt = nothing
@@ -106,12 +96,8 @@ eval-op op-if ⟨ cnd , ⟨ thn , ⟨ els , tt ⟩ ⟩ ⟩ = do
10696

10797
open Structures.WithOpSig Op sig
10898

109-
instance
110-
MVal-is-Foldable : Foldable (Maybe Val) (Maybe Val)
111-
MVal-is-Foldable = record { ret = λ x x ; fold-op = eval-op }
112-
11399
eval : (Var Maybe Val) AST Maybe Val
114-
eval = fold
100+
eval = fold eval-op nothing
115101

116102
evaluate : AST Maybe Val
117103
evaluate M = eval (λ x nothing) M

0 commit comments

Comments
 (0)