anchor.diff:      #literal{ type=bool, value=BoolLit};
   
   split_env(Atom, Env) when is_atom(Atom) ->
  -    case lists:member(Atom,?BUILDIN) of
  -        true ->
  -            #name{name=Atom, buildin=true};
  -        _   ->
  +    case {lists:member(Atom,?BUILDINS),lists:member(Atom,?PRIMOPS)} of
  +        {false, false}  ->
               {NameEnv, NewName} = lookup_name(Env, Atom),
  -            #name{name = NewName, env = NameEnv, buildin=false }
  +            #name{name = NewName, env = NameEnv, buildin=false };
  +        {IsBuildin, IsPrimitiv} ->
  +            #name{name=Atom, buildin=IsBuildin, primitiv=IsPrimitiv}
       end.
   
   %split_env(StringLit) when is_string(StringLit) ->
  
positive.code: decode('+') -> "add";
  decode('/') -> "div";
  decode('*') -> "mul";
  decode('-') -> "sub".
  
  
  % Types
  decode_type(#typeFun{return=Return,arguments=Args}) ->
  
negative.code: %                                     end
  %                end,"", PreCode)).
  
  
  -define(BOOL_OPS,['and','or']).
  -define(CMP_OPS,['=','<','>']).
  -define(NUM_OPS,['+','-','*','/']).
  
  -define(PRIMOPS,?BOOL_OPS ++ ?CMP_OPS ++ ?NUM_OPS).
  -define(BUILDINS,?PRIMOPS ++ ['cond']).
  
  -record(literal,{
            type :: systemType(),
  