>>> *** Source:
    import "UdfScript.rexl" in namespace N;
    func G(x) := "G not nested!";
    func H(x) := "H not nested!";
    N.F(3);
    N.G(3);
    N.H(3);
    namespace N {
        F(3);
        G(3);
        H(3);
        @G(3);
        @H(3);
    }
    with N {
        F(3);
        G(3);
        H(3);
        @G(3);
        @H(3);
        Div(5);
        Div(5, 2);
        // Note that in UdfScript.rexl, the Text namespace for core functions
        // and the N.Text namespace for UDFs are essentially "unified", but here
        // they are not. That is because in UdfScript.rexl, the "root" namespace
        // (transparently to that script) set to N, and root namespace has no
        // effect on core function lookup.
        with Text {
            Len("stuff");
            Len("stuff", "other"); // Error
        }
        with N.Text {
            Len("stuff"); // Error.
            Len("stuff", "other");
        }
        with Text, N.Text {
            Len("stuff");
            Len("stuff", "other");
        }
    }

>>> *** Instructions:
   0) [0] Import in N: "UdfScript.rexl"
   1) [0] DefineFunc G(x) <- "G not nested!"
   2) [0] DefineFunc H(x) <- "H not nested!"
   3) [0] Expr N.F(3)
   4) [0] Expr N.G(3)
   5) [0] Expr N.H(3)
   6) [0] Enter (0=>1) N
   7) [1] Expr F(3)
   8) [1] Expr G(3)
   9) [1] Expr H(3)
  10) [1] Expr @G(3)
  11) [1] Expr @H(3)
  12) [1] Leave (1=>0)
  13) [0] Enter (0=>1)
  14) [1] With N
  15) [1] Expr F(3)
  16) [1] Expr G(3)
  17) [1] Expr H(3)
  18) [1] Expr @G(3)
  19) [1] Expr @H(3)
  20) [1] Expr Div(5)
  21) [1] Expr Div(5, 2)
  22) [1] Enter (1=>2)
  23) [2] With Text
  24) [2] Expr Len("stuff")
  25) [2] Expr Len("stuff", "other")
  26) [2] Leave (2=>1)
  27) [1] Enter (1=>2)
  28) [2] With N.Text
  29) [2] Expr Len("stuff")
  30) [2] Expr Len("stuff", "other")
  31) [2] Leave (2=>1)
  32) [1] Enter (1=>2)
  33) [2] With Text, N.Text
  34) [2] Expr Len("stuff")
  35) [2] Expr Len("stuff", "other")
  36) [2] Leave (2=>1)
  37) [1] Leave (1=>0)
  38) [0] End

>    0) [0] Import in N: "UdfScript.rexl"
>>> *** Source:
    func F(x) := (G(x), @H(x));
    func @G(x) := ("G", x);
    func H(x) := ("H", x);
    func Div(a) := ("Div", a);
    func Text.Len(a, b) := ("Text.Len", a, b);
    Div(5);
    Div(5, 2);
    "stuff"->Len();
    "stuff"->Len("other");
    with Text {
        Div(5);
        Div(5, 2);
        Len("stuff");
        Len("stuff", "other");
    }

>>> *** Instructions:
   0) [0] DefineFunc F(x) <- (G(x), @H(x))
   1) [0] DefineFunc @G(x) <- ("G", x)
   2) [0] DefineFunc H(x) <- ("H", x)
   3) [0] DefineFunc Div(a) <- ("Div", a)
   4) [0] DefineFunc Text.Len(a, b) <- ("Text.Len", a, b)
   5) [0] Expr Div(5)
   6) [0] Expr Div(5, 2)
   7) [0] Expr "stuff"->Len()
   8) [0] Expr "stuff"->Len("other")
   9) [0] Enter (0=>1)
  10) [1] With Text
  11) [1] Expr Div(5)
  12) [1] Expr Div(5, 2)
  13) [1] Expr Len("stuff")
  14) [1] Expr Len("stuff", "other")
  15) [1] Leave (1=>0)
  16) [0] End

>    0) [0] DefineFunc F(x) <- (G(x), @H(x))
UDF 'N.F' has arity 1
>    1) [0] DefineFunc @G(x) <- ("G", x)
UDF 'N.G' has arity 1
>    2) [0] DefineFunc H(x) <- ("H", x)
UDF 'N.H' has arity 1
>    3) [0] DefineFunc Div(a) <- ("Div", a)
UDF 'N.Div' has arity 1
>    4) [0] DefineFunc Text.Len(a, b) <- ("Text.Len", a, b)
UDF 'N.Text.Len' has arity 2
>    5) [0] Expr Div(5)
(Div, 5)
>    6) [0] Expr Div(5, 2)
2
>    7) [0] Expr "stuff"->Len()
5
>    8) [0] Expr "stuff"->Len("other")
(Text.Len, stuff, other)
>    9) [0] Enter (0=>1)
>   10) [1] With Text
>   11) [1] Expr Div(5)
(Div, 5)
>   12) [1] Expr Div(5, 2)
2
>   13) [1] Expr Len("stuff")
5
>   14) [1] Expr Len("stuff", "other")
(Text.Len, stuff, other)
>   15) [1] Leave (1=>0)
>   16) [0] End
>    1) [0] DefineFunc G(x) <- "G not nested!"
UDF 'G' has arity 1
>    2) [0] DefineFunc H(x) <- "H not nested!"
UDF 'H' has arity 1
>    3) [0] Expr N.F(3)
((G, 3), (H, 3))
>    4) [0] Expr N.G(3)
(G, 3)
>    5) [0] Expr N.H(3)
(H, 3)
>    6) [0] Enter (0=>1) N
>    7) [1] Expr F(3)
((G, 3), (H, 3))
>    8) [1] Expr G(3)
(G, 3)
>    9) [1] Expr H(3)
(H, 3)
>   10) [1] Expr @G(3)
G not nested!
>   11) [1] Expr @H(3)
H not nested!
>   12) [1] Leave (1=>0)
>   13) [0] Enter (0=>1)
>   14) [1] With N
>   15) [1] Expr F(3)
((G, 3), (H, 3))
>   16) [1] Expr G(3)
(G, 3)
>   17) [1] Expr H(3)
(H, 3)
>   18) [1] Expr @G(3)
G not nested!
>   19) [1] Expr @H(3)
H not nested!
>   20) [1] Expr Div(5)
(Div, 5)
>   21) [1] Expr Div(5, 2)
2
>   22) [1] Enter (1=>2)
>   23) [2] With Text
>   24) [2] Expr Len("stuff")
5
>   25) [2] Expr Len("stuff", "other")
*** Bind diagnostics:
  [Udf.txt] Error: (688,695) Node: "other", Message: Too many arguments for Text.Len, expected 1 fewer
>   26) [2] Leave (2=>1)
>   27) [1] Enter (1=>2)
>   28) [2] With N.Text
>   29) [2] Expr Len("stuff")
*** Bind diagnostics:
  [Udf.txt] Error: (743,744) Node: Len("stuff"), Message: Too few arguments for N.Text.Len, expected 1 additional
>   30) [2] Expr Len("stuff", "other")
(Text.Len, stuff, other)
>   31) [2] Leave (2=>1)
>   32) [1] Enter (1=>2)
>   33) [2] With Text, N.Text
>   34) [2] Expr Len("stuff")
5
>   35) [2] Expr Len("stuff", "other")
(Text.Len, stuff, other)
>   36) [2] Leave (2=>1)
>   37) [1] Leave (1=>0)
>   38) [0] End

