1 USING: arrays classes fry kernel kernel.private locals macros
5 ERROR: variable-type-error variable value type ;
9 MACRO: declare1 ( type -- quot: ( value -- value ) )
10 1array '[ _ declare ] ;
12 : typed-get-unsafe ( name type -- value )
13 [ get ] dip declare1 ; inline
15 : typed-get-global-unsafe ( name type -- value )
16 [ get-global ] dip declare1 ; inline
20 :: (typed-get) ( name type getter: ( name -- value ) -- value )
21 name getter call :> value
22 value type instance? [ name value type variable-type-error ] unless
23 value type declare1 ; inline
25 : typed-get ( name type -- value )
26 [ get ] (typed-get) ; inline
28 : typed-get-global ( name type -- value )
29 [ get-global ] (typed-get) ; inline
31 :: (typed-set) ( value name type setter: ( value name -- ) -- )
32 value type instance? [ name value type variable-type-error ] unless
33 value name setter call ; inline
35 : typed-set ( value name type -- )
36 [ set ] (typed-set) ; inline
38 : typed-set-global ( value name type -- )
39 [ set-global ] (typed-set) ; inline