You could try something like this:

Outer: make object! [
    Inner: make object! [
        Data1: string!
        Data2: integer!
        ]
    Data1: func [Inner [object!]] [
        Inner/Data1
        ]
    Data2: func [Inner [object!]] [
        Inner/Data2
        ]
    Make-Inner: func [Block [block!]] [
        clone Inner Block
        ]
    set 'Dialect func [Block [block!]] [
        make object! bind Block 'self
        ]
    ]

Dialect [
    Zot: Make-Inner [
        Data1: "one"
        Data2: 2
        ]
    Zot2: Make-Inner [
        Data1: "111111"
        Data2: 22
        ]
    print Data1 Zot
    print Data2 Zot
    print Data1 Zot2
    print Data2 Zot2
    ]

Which, after pasting into the console, gives:
one
2
111111
22


Andrew Martin
In, out and between Rebolutionary...
ICQ: 26227169
http://members.nbci.com/AndrewMartin/
-><-


Reply via email to