diff src/ur/feed.urs @ 6:e0bae488825c

'O' versions of tagA and children
author Adam Chlipala <adam@chlipala.net>
date Sat, 15 Jan 2011 15:25:22 -0500
parents 2717458d8951
children 05a28a77f6fe
line wrap: on
line diff
--- a/src/ur/feed.urs	Thu Jan 13 10:02:37 2011 -0500
+++ b/src/ur/feed.urs	Sat Jan 15 15:25:22 2011 -0500
@@ -9,6 +9,9 @@
 
 val tagA : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs)
           -> pattern (tagInternal attrs) $(mapU string attrs)
+val tagAO : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs)
+            -> pattern (tagInternal attrs) $(mapU (option string) attrs)
+
 val tagC : string -> pattern (tagInternal []) string
 
 con childrenInternal :: Type -> {Type} -> Type
@@ -16,6 +19,9 @@
 val children : parentI ::: Type -> parent ::: Type -> children ::: {(Type * Type)}
                -> pattern parentI parent -> $(map (fn (i, d) => pattern i d) children) -> folder children
                -> pattern (childrenInternal parentI (map fst children)) (parent * $(map snd children))
+val childrenO : parentI ::: Type -> parent ::: Type -> children ::: {(Type * Type)}
+                -> pattern parentI parent -> $(map (fn (i, d) => pattern i d) children) -> folder children
+                -> pattern (childrenInternal parentI (map fst children)) (parent * $(map (fn (i, d) => option d) children))
 
 con treeInternal :: Type -> Type -> Type