diff options
| author | bringert <bringert@cs.chalmers.se> | 2005-12-01 15:37:47 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2005-12-01 15:37:47 +0000 |
| commit | 635845eed8acf476621bd0d01a85146fb19693a6 (patch) | |
| tree | 2c40fe3e2b32ec0fdc07b445a3c184f03d5ecc77 /transfer/examples | |
| parent | 30bb51372fa8fdb6d68d1fd1b15793940c8d4e3b (diff) | |
Transfer: added support for disjunctive patterns.
Diffstat (limited to 'transfer/examples')
| -rw-r--r-- | transfer/examples/disjpatt.tr | 24 |
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 |
