2014-11-30 02:00:24 -05:00
|
|
|
USING: accessors inverse kernel models models.arrow ;
|
2009-05-15 17:58:17 -04:00
|
|
|
IN: models.illusion
|
|
|
|
|
|
|
|
TUPLE: illusion < arrow ;
|
|
|
|
|
|
|
|
: <illusion> ( model quot -- illusion )
|
2014-11-30 02:00:24 -05:00
|
|
|
f illusion new-model
|
|
|
|
swap >>quot
|
|
|
|
over >>model
|
|
|
|
[ add-dependency ] keep ;
|
2009-05-31 12:40:03 -04:00
|
|
|
|
2014-11-30 02:00:24 -05:00
|
|
|
: <activated-illusion> ( model quot -- illusion )
|
|
|
|
<illusion> dup activate-model ;
|
2009-05-15 17:58:17 -04:00
|
|
|
|
2009-05-16 11:46:34 -04:00
|
|
|
: backtalk ( value object -- )
|
|
|
|
[ quot>> [undo] call( a -- b ) ] [ model>> ] bi set-model ;
|
2009-05-15 17:58:17 -04:00
|
|
|
|
2014-11-30 02:00:24 -05:00
|
|
|
M: illusion update-model ( model -- )
|
|
|
|
[ [ value>> ] keep backtalk ] with-locked-model ;
|