@main[] a before: ^show[$a:CLASS] b before: ^show[$b:CLASS] ^reflection:mixin[$b:CLASS; $.name[method_b] $.to[$a:CLASS] $.fields(false) ] 1. ^show[$a:CLASS] ^reflection:mixin[$b:CLASS; $.to[$a:CLASS] $.fields(false) ] 2. ^show[$a:CLASS] ^reflection:mixin[$b:CLASS; $.to[$a:CLASS] ] 3. ^show[$a:CLASS] ^a:mixin[ $.methods(false) $.name[field] $.overwrite(true) ] 4. ^show[$a:CLASS] ^a:mixin[ $.methods(false) $.overwrite(true) ] 5. ^show[$a:CLASS] $a:b[check] property copied: $a:b ^a:mixin[ $.overwrite(true) ] 6. ^show[$a:CLASS] inheritance check: ^show[$c:CLASS] @show[v] fields: ^json:string[$v] $methods[^reflection:methods[$v.CLASS_NAME; $.reverse(false) ]] ^methods.foreach[name;]{method ${name}:^if(^name.left(6) eq 'method'){ ^v.$name[]} } @CLASS a @auto[] $field[a] $field_a[a specific] @create[] $value[a] @method[] a @method_a[] a specific @mixin[options] ^reflection:mixin[$b:CLASS;$options] @CLASS b @auto[] $field[b] $field_b[b specific] @method[] b @method_b[] b specific @GET_b[] b property "$property" @SET_b[value] $self.property[$value] @CLASS c @BASE a @method_c[] c specific