lib objectclass; define :class foo; enddefine; define define_named_method(method, class); lvars method_str = method >< ''; lvars class_str = class >< ''; lvars method_hash_str = 'hash_' >< length(class_str) >< '_' >< class_str >< '_' >< length(method_str) >< '_' >< method_str; lvars method_hash = consword(method_hash_str); pop11_compile([ lvars ^method_hash = newassoc([]); define :method ^method(self : ^class); ^method_hash(self); enddefine; define :method updaterof ^method(val, self : ^class); val -> ^method_hash(self); enddefine; ]); enddefine; define_named_method("met1", "foo"); lvars bar = consfoo(); met1(bar) => ;;; default value -- false "baz" -> met1(bar); met1(bar) => ;;; new value