summaryrefslogtreecommitdiff
path: root/transfer/examples
diff options
context:
space:
mode:
Diffstat (limited to 'transfer/examples')
-rw-r--r--transfer/examples/disjpatt.tr24
1 files changed, 24 insertions, 0 deletions
diff --git a/transfer/examples/disjpatt.tr b/transfer/examples/disjpatt.tr
new file mode 100644
index 000000000..740e08a7b
--- /dev/null
+++ b/transfer/examples/disjpatt.tr
@@ -0,0 +1,24 @@
+data Cat : Type where
+ VarOrWild : Cat
+ Exp : Cat
+ Ident : Cat
+
+data Tree : Cat -> Type where
+ EAbs : Tree VarOrWild -> Tree Exp -> Tree Exp
+ EPi : Tree VarOrWild -> Tree Exp -> Tree Exp -> Tree Exp
+ EVar : Tree Ident -> Tree Exp
+ EType : Tree Exp
+ EStr : String -> Tree Exp
+ EInt : Integer -> Tree Exp
+ VVar : Tree Ident -> Tree VarOrWild
+ VWild : Tree VarOrWild
+ Ident : String -> Tree Ident
+
+
+f e = case e of
+ EAbs (VWild || VVar _) e || EPi (VWild || VVar _) _ e -> doSomething e
+ Ident i -> Ident i
+ _ -> catchAll
+
+
+g (Ident x || EAbs (VWild || VVar _) t e) = x e \ No newline at end of file