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 {}