anchor.diff:  
   %% Internals
   
  -eq (A, B) ->
  -  {primop, fun erlang:'=='/2, [A, B]}.
  -tand (A, B) ->
  -  {primop, fun erlang:'and'/2, [A, B]}.
  -lte (A, B) ->
  -  {primop, fun erlang:'=<'/2, [A, B]}.
  -gte (A, B) ->
  -  {primop, fun erlang:'>='/2, [A, B]}.
  -plus (A, B) ->
  -  {primop, fun erlang:'+'/2, [A,B]}.
  -times (A, B) ->
  -  {primop, fun erlang:'*'/2, [A,B]}.
  -minus (A, B) ->
  -  {primop, fun erlang:'-'/2, [A, B]}.
  -
   %% End of Module.
  
positive.code:             dim s <- 3
          end"),
    ?assertEqual(
       {where, plus({'#',{dim,"t"}},
                    {'#',{dim,"s"}}),
        [{dim,"t",2},
         {dim,"s",3}]},
       Tree).
  
negative.code:      {where, "N0",
        [
         {var, "N0",
          {'if', tprimop:eq({'#',TimeD}, 0),
           "N1",
           {'@', "N0",
            {t, [{TimeD, tprimop:minus({'#',TimeD}, 1)}]}}}},
         {var, "N1",
          {'if', tprimop:eq({'#', SpaceD}, 0),
           1,
           tprimop:times({'@', "N1",
                          {t, [{SpaceD, tprimop:minus({'#',SpaceD}, 1)}]}},
                         2)
          }},
         {dim, "t", 10},
         {dim, "s", 10}
  