+$ message %start %stop +$ model [count=@ud] ++ main (program (init) update view subs) ++ init |= input=@t ^- model [count=0] ++ update |= [msg=message state=model] ^- [model (list (cmd message))] [state ~] ++ view |= state=model ^- (element message) (text "view") ++ subs |= state=model ^- (list (sub message)) (~)