1 object Obs = 2 def map<T, U> (list : List<T>) (f : T -> U) = 3 let to = List<U>.new 4 5 list.bind { i x -> to.add i (f x) @[weak to] } 6 { i x -> to.remove_at i @[weak to] } 7 |> to.push_token 8 9 to.as_readonly 10 11 def subscribe<T> (list : List<T>) (f : u32 * T -> Unit) = 12 list.subscribe f f 13