anchor.diff:  		  end
   	      end
   	  end,
  -	mk_fun_var(F, [Dst, A])
  +	?mk_fun_var(F, [Dst, A])
       end,
     Arg1FunVar = ArgFun(Arg2, 2),
     Arg2FunVar = ArgFun(Arg1, 1),
  
positive.code: 	      end
  	  end,
    DstL = [Dst],
    HdVar = mk_fun_var(HdFun, DstL),
    TlVar = mk_fun_var(TlFun, DstL),
    ArgTypes = erl_bif_types:arg_types(erlang, '++', 2),
    ReturnType = mk_fun_var(fun(Map) ->
  			      TmpArgTypes = lookup_type_list(Args, Map),
  			      erl_bif_types:type(erlang, '++', 2, TmpArgTypes)
  			  end, Args),
    Cs = mk_constraints(Args, sub, ArgTypes),
    mk_conj_constraint_list([mk_constraint(Dst, sub, ReturnType),
  			   mk_constraint(Hd, sub, HdVar),
  
negative.code:       '>=' -> {ArgFun(Arg1, Arg2, '>='), ArgFun(Arg2, Arg1, '=<')}
      end,
    DstArgs = [Dst, Arg1, Arg2],
    Arg1Var = ?mk_fun_var(Arg1Fun, DstArgs),
    Arg2Var = ?mk_fun_var(Arg2Fun, DstArgs),
    DstVar = ?mk_fun_var(fun(Map) ->
  			   TmpArgTypes = lookup_type_list(Args, Map),
  			   erl_bif_types:type(erlang, Op, 2, TmpArgTypes)
  		       end, Args),
    mk_conj_constraint_list([mk_constraint(Dst, sub, DstVar),
  			   mk_constraint(Arg1, sub, Arg1Var),
  			   mk_constraint(Arg2, sub, Arg2Var)]);
  