Values are a set of key-value pairs. Keys are just normal Paws values. Values may also have some invisible data attached to them, accessible only through system-provided routines, e.g. numbers accessible through system-provided routines for arithmetic.
Each value has an associated routine to handle “juxaposition”. Juxaposition is when you put two values next to each other like this: a b
. The routine associated with the value on the left is executed with both values as arguments. The default is to look up the value on the right against the key-value pairs of the object on the right.
A prominent example of different functionality can be seen in routines themselves. A routine is a normal Paws value with some invisible data attached to it, representing Paws code to be executed (as well as another Paws object representing the routine's local scope), and the routine's associated juxtaposition handler simply executes that routine with the value on the right as its argument.