annotate forms.ur @ 15:8300d5f0dc19

Replace ChangePoller with SourceL, plus some other rearrangements
author Adam Chlipala <adam@chlipala.net>
date Sun, 07 Aug 2011 14:38:52 -0400
parents 1e04008eaef7
children 5905b56e0cd9
rev   line source
adam@1 1 datatype readiness a = Ready of a | Waiting | Invalid of string
adam@1 2 datatype rpcResult a = Success of a | Failure of string
adam@1 3
adam@1 4 fun warning [a] (s : signal (readiness a)) =
adam@1 5 <xml><dyn signal={v <- s;
adam@1 6 return (case v of
adam@1 7 Invalid s => <xml><b>{[s]}</b></xml>
adam@1 8 | _ => <xml/>)}/></xml>
kkallio@9 9
kkallio@9 10 fun warningFmt [a ::: Type] [ctx ::: {Unit}] [ctx ~ body]
kkallio@9 11 (wrap : string -> xml (body ++ ctx) [] [])
kkallio@9 12 (s : signal (readiness a)) =
kkallio@9 13 <xml><dyn signal={v <- s;
kkallio@9 14 return (case v of
kkallio@9 15 Invalid s => wrap s
kkallio@9 16 | _ => <xml/>)}/></xml>