Mercurial > gui
view sourceL.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 | changePoller.ur@0827320b0f04 |
children |
line wrap: on
line source
con t a = {Source : source a, OnSet : source (a -> transaction {})} fun create [a] (i : a) = s <- source i; f <- source (fn _ => return ()); return {Source = s, OnSet = f} fun onChange [a] (t : t a) f = old <- get t.OnSet; set t.OnSet (fn x => (old x; f x)) fun set [a] (t : t a) (v : a) = Basis.set t.Source v; f <- get t.OnSet; f v fun get [a] (t : t a) = Basis.get t.Source fun value [a] (t : t a) = signal t.Source