Let's begin with a simple model:

Hello, world!

Cool, now get into the first model. This implements a scalar, list, and hash as a single class. Let's try some tests...

MultiModel1 as a string!

Now as a list...

Model1 value: 0
Model1 value: 1
Model1 value: 2
Model1 value: 3
Model1 value: 4
Model1 value: 5
Model1 value: 6
Model1 value: 7
Model1 value: 8
Model1 value: 9
Model3 is alive!

Index into a list...

Model1 value: 1

List size is: Nasty!

List size is: Nasty!

Now, again, as a hash. First using dot notation, then using [] notation:

Selftest of a hash from MultiModel1

Selftest of a hash from MultiModel1

Now for the tricky stuff... use a model to index into another model...

selftest

Selftest of a hash from MultiModel1

self

Selftest of a hash from MultiModel1

Same thing, this time a List index...

0

Model1 value: 0

Model1 value: 1

Now, do the same recursively...

MultiModel1 as a string!

Model2 is alive!

Arguments are:
test

Arguments are:
MultiModel1 as a string!
Selftest of a hash from MultiModel1
Hello, world!

Does this really not work?

Model3 is alive!

Selftest from MultiModel3!

Hello world from MultiModel3!

(Again, with Hashes)

Model3 is alive!

Selftest from MultiModel3!

Model3 is alive!

Selftest from MultiModel3!

Selftest from MultiModel3!

As I suspected! (Manual on Expressions needs updating.)

Second test on list size

Key size, not the listSize method.

Key size, not the listSize method.