TUPLE: delay < model model timeout alarm ;\r
\r
: update-delay-model ( delay -- )\r
- [ delay-model model-value ] keep set-model ;\r
+ [ model>> value>> ] keep set-model ;\r
\r
: <delay> ( model timeout -- delay )\r
f delay new-model\r
[ add-dependency ] keep ;\r
\r
: cancel-delay ( delay -- )\r
- delay-alarm [ cancel-alarm ] when* ;\r
+ alarm>> [ cancel-alarm ] when* ;\r
\r
: start-delay ( delay -- )\r
dup\r
reset-history ;\r
\r
: (add-history) ( history to -- )\r
- swap model-value dup [ swap push ] [ 2drop ] if ;\r
+ swap value>> dup [ swap push ] [ 2drop ] if ;\r
\r
: go-back/forward ( history to from -- )\r
dup empty?\r
[ >r dupd (add-history) r> pop swap set-model ] if ;\r
\r
: go-back ( history -- )\r
- dup history-forward over history-back go-back/forward ;\r
+ dup [ forward>> ] [ back>> ] bi go-back/forward ;\r
\r
: go-forward ( history -- )\r
- dup history-back over history-forward go-back/forward ;\r
+ dup [ back>> ] [ forward>> ] bi go-back/forward ;\r
\r
: add-history ( history -- )\r
- dup history-forward delete-all\r
- dup history-back (add-history) ;\r
+ dup forward>> delete-all\r
+ dup back>> (add-history) ;\r