Mercurial > feed
annotate src/ur/feed.urs @ 3:ea0ca570c121
Shortcut tag combinators
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Tue, 11 Jan 2011 14:19:51 -0500 |
parents | 8de269c09617 |
children | af95d9d73eb5 |
rev | line source |
---|---|
adam@1 | 1 con pattern :: Type -> Type -> Type |
adam@1 | 2 |
adam@1 | 3 con tagInternal :: {Unit} -> Type |
adam@1 | 4 |
adam@1 | 5 val tag : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs) |
adam@1 | 6 -> pattern (tagInternal attrs) {Attrs : $(mapU string attrs), Cdata : option string} |
adam@1 | 7 |
adam@3 | 8 val tagA : attrs ::: {Unit} -> folder attrs -> string -> $(mapU string attrs) |
adam@3 | 9 -> pattern (tagInternal attrs) $(mapU string attrs) |
adam@3 | 10 val tagC : string -> pattern (tagInternal []) string |
adam@3 | 11 |
adam@1 | 12 con childrenInternal :: Type -> {Type} -> Type |
adam@1 | 13 |
adam@1 | 14 val children : parentI ::: Type -> parent ::: Type -> children ::: {(Type * Type)} |
adam@1 | 15 -> pattern parentI parent -> $(map (fn (i, d) => pattern i d) children) -> folder children |
adam@1 | 16 -> pattern (childrenInternal parentI (map fst children)) (parent * $(map snd children)) |
adam@1 | 17 |
adam@1 | 18 val app : internal ::: Type -> data ::: Type -> pattern internal data -> (data -> transaction {}) -> string -> transaction {} |