! defining new instances in a namespace in the global scope : ( -- namespace ) H{ } clone ; VALUE: App \ App set-value SYMBOLS: PickerView picker-view my-layout my-mouse-down ; : add-property ( variable value -- ) swap set ; ALIAS: add-responder-method add-property :: define-instance ( ns var value -- ) ns [ value var set ] bind ; : ( -- view ) ; : create ( ns -- ns ) dup >n ; ! : create ( namespace -- ) App picker-view create my-layout { 100 100 10 50 } add-property my-mouse-down [| evt | drop beep t ] add-responder-method define-instance