anchor.diff:  argument_list_cons([Element|Rest], Line) ->
     {cons, Line, Element, argument_list_cons(Rest, Line)}.
   
  -%% Default functions to incorporate into Reia classes
  +%% These functions are required for the generated modules to implement the
  +%% gen_server behavior
   default_functions() ->
  -  [default_function(Function) || Function <- [
  -    "init(Args) -> {ok, initialize(Args)}.",
  -    "method_missing(_State, Method, _Args) -> throw({error, {Method, \"undefined\"}}).",
  +  [parse_function(Function) || Function <- [
  +    "init([]) -> {ok, dict:new()}.",
       "handle_call(Request, From, State) -> try dispatch_method(Request, From, State) catch throw:Error -> {reply, {error, Error}, State} end.",
       "handle_cast(_Msg, State) -> {noreply, State}.",
       "handle_info(_Info, State) -> {noreply, State}.",
       "terminate(_Reason, _State) -> ok.",
       "code_change(_OldVsn, State, _Extra) -> {ok, State}.",
  -    
  -    % A bit sneaky here as this is an untransformed method:
  -    "initialize() -> nil."
  +    "method_missing(_State, Method, _Args) -> throw({error, {Method, \"undefined\"}})."
     ]].
  -
  +  
  +%% Default methods that Reia objects respond to
  +default_methods(Module) ->
  +  NameString = lists:concat(["reia_string:from_list(\"#<", Module, ">\")"]),
  +  [default_method(Function) || Function <- [
  +    "class() -> {constant, '" ++ atom_to_list(Module) ++ "'}.",
  +    "initialize() -> nil.",
  +    "to_s() -> " ++ NameString ++ ".",
  +    "inspect() -> " ++ NameString ++ "."
  +  ]].
  +  
   %% Parse a default function and return a dict entry for it  
  -default_function(String) ->
  +default_method(String) ->
     Form = parse_function(String),
     {function, _, Name, _, _} = Form,
     {Name, Form}.
     
  -%% Default methods that Reia objects respond to
  -default_methods(Module) ->
  -  NameString = lists:concat(["reia_string:from_list(\"#<", Module, ">\")"]),
  -  [parse_function(Function) || Function <- [
  -    lists:concat(["class() -> {constant, '", Module, "'}."]),
  -    "to_s() -> " ++ NameString ++ ".",
  -    "inspect() -> " ++ NameString ++ "."
  -  ]].
  -  
   %% Functions for starting a new object
  -start_functions(Module, Arity) ->
  -  [start_function(Module, Function, Arity) || Function <- ["start", "start_link"]].
  -
  -start_function(Module, Function, Arity) ->
  -  Vars = variable_list(Arity),
  -  String = [Function, "("] ++ Vars ++ 
  -    [") -> {ok, Pid} = gen_server:", Function, "('", Module, "', ["] ++ Vars ++ [
  -    "], []), {object, {Pid, '", Module, "'}}."],
  +start_functions(Module) ->
  +  [start_function(Module, Function) || Function <- [{"spawn", "start"}, {"spawn_link", "start_link"}]].
  +
  +start_function(Module, {ReiaFunc, OtpFunc}) ->
  +  String = [
  +    ReiaFunc, "() -> {ok, Pid} = gen_server:", OtpFunc, "('", Module, "', [], [])," ++ 
  +    "{object, {Pid, '", Module, "'}}."
  +  ],
     parse_function(lists:concat(String)).
     
   variable_list(0) ->
  
positive.code:   {clause, Line, Arguments2, Guards, Expressions2}.
    
  %% Build a dispatch_method function and functions for each of the mangled methods
  method_functions(Module, Methods) ->
    % Decompose the function clauses for methods into handle_call clauses
    {Clauses, Functions} = process_methods(Methods ++ default_methods(Module)),
    [build_method_dispatch_function(Clauses)|Functions].
  
  %% Generate Erlang forms for the class's method dispatch function
  
negative.code: parse_function(String) ->
    {ok, Scanned, _} = erl_scan:string(String),
    {ok, Form} = erl_parse:parse_form(Scanned),
    Form.