SYMBOL: Q1 SYMBOL: Q2 DEFER: fn2 TUPLE: flipflop value { transmitted? initial: f } ; : fn1 ( tuple -- ) [ [ drop 1 ] change-value value>> Q1 set ] [ dup transmitted?>> [ drop ] [ [ drop t ] change-transmitted? fn2 ] if ] bi ; inline recursive : fn2 ( tuple -- ) [ [ drop 0 ] change-value value>> Q2 set ] [ dup transmitted?>> [ drop ] [ [ drop t ] change-transmitted? fn1 ] if ] bi ; inline recursive