anchor.diff:                code = PrettyBody,
                 attributes = [async]}
             }
  -        end, List)
  -  end;
  -parse_function_clause({clause, _Line, [Event | Args], Guards, Body}, handle_info, Options, Type) ->
  -  case eval_return(parse_body(Body), Type, []) of
  -    {error, _Reason} ->
  -      {error, bad_transition};
  -    List ->
  -      lists:map(
  -        fun({ok, NextState, RetType}) ->
  +        end,
  +  map_parse_func(Fun, Body, Type);
  +parse_function_clause({clause, _Line, [Event | Args], Guards, Body},
  +                      handle_info, Options, gen_fsm) ->
  +  Fun = fun({ok, NextState, RetType}) ->
             PrettyGuards = lists:map(fun(G) -> erl_pp:guard(G) end, Guards),
             PrettyBody = erl_pp:exprs(Body),
             PrettyEvent = erl_pp:expr(Event),
  
positive.code:               code = PrettyBody,
                attributes = Options}
            }
          end, List)
    end.
  
  %process_body({ok. PrevState, NextState, }) ->
  
  
  parse_body(Body) ->
    parse_body(Body, []).
  
negative.code:               code = PrettyBody,
                attributes = [RetType|Options]}
            }
          end,
    map_parse_func(Fun, Body, gen_fsm);
  parse_function_clause({clause, _Line, [Event | Args], Guards, Body},
                        FnName, Options, gen_fsm) ->
    Fun = fun({ok, NextState, _}) ->
            PrettyGuards = lists:map(fun(G) -> erl_pp:guard(G) end, Guards),
            PrettyBody = erl_pp:exprs(Body),
            PrettyEvent = erl_pp:expr(Event),
  