comparison src/ur/feed.urs @ 4:af95d9d73eb5

Feed.tree
author Adam Chlipala <adam@chlipala.net>
date Tue, 11 Jan 2011 18:04:15 -0500
parents ea0ca570c121
children 2717458d8951
comparison
equal deleted inserted replaced
3:ea0ca570c121 4:af95d9d73eb5
1 con pattern :: Type -> Type -> Type 1 con pattern :: Type -> Type -> Type
2 2
3 con tagInternal :: {Unit} -> Type 3 con tagInternal :: {Unit} -> Type
4
5 val null : pattern unit (variant [])
4 6
5 val tag : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs) 7 val tag : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs)
6 -> pattern (tagInternal attrs) {Attrs : $(mapU string attrs), Cdata : option string} 8 -> pattern (tagInternal attrs) {Attrs : $(mapU string attrs), Cdata : option string}
7 9
8 val tagA : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs) 10 val tagA : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs)
13 15
14 val children : parentI ::: Type -> parent ::: Type -> children ::: {(Type * Type)} 16 val children : parentI ::: Type -> parent ::: Type -> children ::: {(Type * Type)}
15 -> pattern parentI parent -> $(map (fn (i, d) => pattern i d) children) -> folder children 17 -> pattern parentI parent -> $(map (fn (i, d) => pattern i d) children) -> folder children
16 -> pattern (childrenInternal parentI (map fst children)) (parent * $(map snd children)) 18 -> pattern (childrenInternal parentI (map fst children)) (parent * $(map snd children))
17 19
20 con treeInternal :: Type -> Type -> Type
21
22 val tree : parentI ::: Type -> parent ::: Type -> childI ::: Type -> child ::: Type
23 -> pattern parentI parent -> pattern childI child
24 -> pattern (treeInternal parentI childI) (parent * child)
25
18 val app : internal ::: Type -> data ::: Type -> pattern internal data -> (data -> transaction {}) -> string -> transaction {} 26 val app : internal ::: Type -> data ::: Type -> pattern internal data -> (data -> transaction {}) -> string -> transaction {}