Repurpose bracket notation:

-   a[b] was equivalent to a.get(b)
-   a[b] is now equivalent to a.property(b)
-   a.* is no longer supported, use a.rangeContent()
-   a[*] is no longer supported, use a.mapContent()
-   a.evaluate() is now path(a), analogous to get(a) and property(a)

You may now observe arbitrary methods of a type, like a.foo(b), which will
react to changes to the identity of any parameter.  There is not yet a way to
create inheritable custom observers or binders for arbitrary methods.