1 USING: accessors inverse kernel models models.arrow ;
4 TUPLE: illusion < arrow ;
6 : <illusion> ( model quot -- illusion )
10 [ add-dependency ] keep ;
12 : <activated-illusion> ( model quot -- illusion )
13 <illusion> dup activate-model ;
15 : backtalk ( value object -- )
16 [ quot>> [undo] call( a -- b ) ] [ model>> ] bi set-model ;
18 M: illusion update-model ( model -- )
19 [ [ value>> ] keep backtalk ] with-locked-model ;