anchor.diff:        end
     end;
   
  -translate_each({Atom, Line, Args}, S) when is_atom(Atom) ->
  -  Callback = fun() ->
  -    case convert_partials(Line, Args, S) of
  -      { _, [], _ } ->
  +translate_each({Atom, Line, Args} = Original, S) when is_atom(Atom) ->
  +  case handle_partials(Line, Original, S) of
  +    error ->
  +      Callback = fun() ->
           { TArgs, NS } = translate_args(Args, S),
  -        { { call, Line, { atom, Line, Atom }, TArgs }, NS };
  -      { _, Def, _ } when length(Def) == length(Args) ->
  -        { { 'fun', Line, { function, Atom, length(Args) } }, S };
  -      { Call, Def, SC } ->
  -        Block = [{do, { Atom, Line, Call }}],
  -        translate_each({ fn, Line, Def ++ [Block] }, SC)
  -    end
  -  end,
  -  elixir_macro:dispatch_imports(Line, Atom, Args, S, Callback);
  +        { { call, Line, { atom, Line, Atom }, TArgs }, NS }
  +      end,
  +      elixir_macro:dispatch_imports(Line, Atom, Args, S, Callback);
  +    Else -> Else
  +  end;
   
   %% Dot calls
   
  
positive.code:       { { call, Line, { atom, Line, apply }, Apply }, FS }
    end.
  
  %% This function receives arguments and then checks
  %% the args for partial application. It returns a tuple
  %% with three elements where the first element is the list
  
negative.code:     { atom, _, Atom } ->
        translate_each({ Atom, Line, Args }, S);
      _ ->
        case handle_partials(Line, Original, S) of
          error ->
            { TArgs, SA } = translate_args(Args, umergec(S, SE)),
            { {call, Line, TExpr, TArgs}, umergev(SE, SA) };
          Else -> Else
        end
    end;
  
  