summaryrefslogtreecommitdiff
path: root/demo/more/conference.urs
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-10-20 10:19:00 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-10-20 10:19:00 -0400
commitaece9fdadf1bdfbf069cc5ac5ab397eef1e3f2ad (patch)
tree800ab89ca52c3ef6e7df0f9420292131459f0e47 /demo/more/conference.urs
parente177d0dd0db2639bd056e81296f2f0f5c930ad5f (diff)
Add tuple pattern-matching at the constructor level
Diffstat (limited to 'demo/more/conference.urs')
-rw-r--r--demo/more/conference.urs20
1 files changed, 20 insertions, 0 deletions
diff --git a/demo/more/conference.urs b/demo/more/conference.urs
new file mode 100644
index 00000000..696b8b32
--- /dev/null
+++ b/demo/more/conference.urs
@@ -0,0 +1,20 @@
+con reviewMeta = fn (db :: Type, widget :: Type) =>
+ {Show : db -> xbody,
+ Widget : nm :: Name -> xml form [] [nm = widget],
+ WidgetPopulated : nm :: Name -> db -> xml form [] [nm = widget],
+ Parse : widget -> db,
+ Inject : sql_injectable db}
+
+val int : reviewMeta (int, string)
+val float : reviewMeta (float, string)
+val string : reviewMeta (string, string)
+val bool : reviewMeta (bool, bool)
+
+functor Make(M : sig
+ con review :: {(Type * Type)}
+ val review : $(map reviewMeta review)
+ end) : sig
+
+ val main : unit -> transaction page
+
+end