anchor.diff:                attributes = Options}
             }
           end,
  -  map_parse_func(Fun, Body, gen_fsm);
  +  map_parse_func(Fun, FnName, Body, gen_fsm);
   parse_function_clause({clause, _Line, [_Call, Event | Args], Guards, Body},
                         FnName, Options, gen_statem) ->
     Fun = fun({ok, NextState, _}) ->
  
positive.code:   [].
  
  
  eval_return([ReturnVal|Rest], gen_fsm, Acc) ->
    case eval_tuple(ReturnVal) of
      {ok, {ok, NextState, _Data}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, init}|Acc]);
      {ok, {ok, NextState, _Data, _Timeout}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, init}|Acc]);
      {ok, {stop, _Reason}} ->
        eval_return(Rest, gen_fsm, [{ok, terminate, init}|Acc]);
      {ok, {reply, _Reply, NextState, _Data}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, sync}|Acc]);
      {ok, {reply, _Reply, NextState, _Data, _Timeout}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, sync}|Acc]);
      {ok, {stop, _Reason, _Reply, _Data}} ->
        eval_return(Rest, gen_fsm, [{ok, terminate, sync}|Acc]);
      {ok, {next_state, NextState, _Data}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, async}|Acc]);
      {ok, {next_state, NextState, _Data, _Timeout}} ->
        eval_return(Rest, gen_fsm, [{ok, NextState, async}|Acc]);
      {ok, {stop, _Reason, _Data}} ->
        eval_return(Rest, gen_fsm, [{ok, terminate, async}|Acc]);
      _Other ->
        eval_return(Rest, gen_fsm, Acc)
    end;
  eval_return([ReturnVal|Rest], gen_statem, Acc) ->
    case eval_tuple(ReturnVal) of
      {ok, {next_state, NextState, _Data}} ->
        eval_return(Rest, gen_statem, [{ok, NextState, async}|Acc]);
      {ok, {next_state, NextState, _Data, _Actions}} ->
        eval_return(Rest, gen_statem, [{ok, NextState, async}|Acc]);
      _Other ->
        eval_return(Rest, gen_statem, Acc)
    end;
  eval_return([], _, []) ->
    {error, badreturn};
  eval_return([], _, Acc) ->
    Acc.
  
  
  
negative.code:               attributes = Options}
            }
          end,
    map_parse_func(Fun, FnName, Body, gen_statem).
  
  %process_body({ok. PrevState, NextState, }) ->
  
  map_parse_func(Fun, State, Body, Type) ->
    case eval_return(State, parse_body(Body), Type, []) of
      {error, _Reason} ->
        {error, bad_transition};
      List ->
  