anchor.diff:        { clause, Line, Args, [], Exprs }
       ] }
     ].
  -
  -%% Fast compilation is available?
  -
  -allows_fast_compilation([{defmodule,_,_}|T]) -> allows_fast_compilation(T);
  -allows_fast_compilation([]) -> true;
  -allows_fast_compilation(_) -> false.
   
   %% Generate module names from code server.
   
  
positive.code: 
  %% Evaluates the contents/forms by compiling them to an Erlang module.
  
  eval_forms(Forms, Line, Vars, #elixir_scope{module=nil} = S) ->
    eval_forms(Forms, Line, nil, Vars, S);
  
  eval_forms(Forms, Line, Vars, #elixir_scope{module=Value} = S) ->
    eval_forms(Forms, Line, Value, Vars, S).
  
  eval_forms(Forms, Line, Value, Vars, S) ->
    case (Value == nil) andalso allows_fast_compilation(Forms) of
      true  -> eval_compilation(Forms, Vars, S);
      false -> code_loading_compilation(Forms, Line, Value, Vars, S)
    end.
  
  eval_compilation(Forms, Vars, S) ->
    Binding = [{ { Var, Kind }, Value } || { _, Kind, Var, Value } <- Vars],
    { Result, _Binding, FS } = elixir:eval_forms(Forms, [{'_@MODULE',nil}|Binding], S),
    { Result, FS }.
  
  code_loading_compilation(Forms, Line, Value, Vars, S) ->
    { Module, I } = retrieve_module_name(),
    { Exprs, FS } = elixir_translator:translate(Forms, S),
    ModuleForm    = module_form(Exprs, Line, S#elixir_scope.file, Module, Vars),
  
negative.code:   try
      put(elixir_compiled, []),
      Forms = elixir_translator:'forms!'(Contents, 1, File, []),
      eval_forms(Forms, 1, [], elixir:scope_for_eval([{file,File}])),
      lists:reverse(get(elixir_compiled))
    after
      put(elixir_compiled, Previous)
  