anchor.diff:       {where, {'@', "Y1", {t, [{XD,0}]}},
          [
           {var, "Y1",
  -         {'if', lte({'#', TimeD}, 0),
  +         {'if', tprimop:lte({'#', TimeD}, 0),
             "X1",
  -          {'@', plus(
  -                  plus({'@', "Y1",
  -                        {t, [{XD,      times({'#', XD}, 2)    },
  -                             {YD,      times({'#', YD}, 2)    }]}},
  +          {'@', tprimop:plus(
  +                  tprimop:plus({'@', "Y1",
  +                        {t, [{XD,              tprimop:times({'#', XD}, 2)    },
  +                             {YD,              tprimop:times({'#', YD}, 2)    }]}},
                          {'@', "Y1",
  -                        {t, [{XD, plus(times({'#', XD}, 2), 1)},
  -                             {YD,      times({'#', YD}, 2)    }]}}),
  -                  plus({'@', "Y1",
  -                        {t, [{XD,      times({'#', XD}, 2)    },
  -                             {YD, plus(times({'#', YD}, 2), 1)}]}},
  +                        {t, [{XD, tprimop:plus(tprimop:times({'#', XD}, 2), 1)},
  +                             {YD,              tprimop:times({'#', YD}, 2)    }]}}),
  +                  tprimop:plus({'@', "Y1",
  +                        {t, [{XD,              tprimop:times({'#', XD}, 2)    },
  +                             {YD, tprimop:plus(tprimop:times({'#', YD}, 2), 1)}]}},
                          {'@', "Y1",
  -                        {t, [{XD, plus(times({'#', XD}, 2), 1)},
  -                             {YD, plus(times({'#', YD}, 2), 1)}]}})
  +                        {t, [{XD, tprimop:plus(tprimop:times({'#', XD}, 2), 1)},
  +                             {YD, tprimop:plus(tprimop:times({'#', YD}, 2), 1)}]}})
                    ),
  -           {t, [{TimeD, minus({'#', TimeD}, 1)}]}}}},
  +           {t, [{TimeD, tprimop:minus({'#', TimeD}, 1)}]}}}},
           {var, "X1",
  -         {'if', tand(
  -                  tand(gte({'#', XD},    1),
  -                       lte({'#', YD}, 1024)),
  -                  tand(gte({'#', YD},    1),
  -                       lte({'#', YD}, 1024))),
  +         {'if', tprimop:tand(
  +                  tprimop:tand(tprimop:gte({'#', XD},    1),
  +                               tprimop:lte({'#', YD}, 1024)),
  +                  tprimop:tand(tprimop:gte({'#', YD},    1),
  +                               tprimop:lte({'#', YD}, 1024))),
             {'#', XD},
             1}},
           {dim, "t", 2},
  
positive.code:      {where, "N0",
        [
         {var, "N0",
          {'if', eq({'#',TimeD}, 0),
           "N1",
           {'@', "N0",
            {t, [{TimeD, minus({'#',TimeD}, 1)}]}}}},
         {var, "N1",
          {'if', eq({'#', SpaceD}, 0),
           1,
           times({'@', "N1",
                  {t, [{SpaceD, minus({'#',SpaceD}, 1)}]}},
                 2)
          }},
         {dim, "t", 10},
         {dim, "s", 10}
  
negative.code:         end"),
    ?assertEqual(
       {where, "X",
        [{var, "X", tprimop:plus({'#',{dim,"t"}},
                                 {'#',{dim,"s"}})},
         {dim, "t", 2},
         {dim, "s", 3} ]},
       Tree).
  