anchor.diff:  	     lookup_fun=CallFun, result_action=FinalFun}
     end.
   
  --spec state__cfg(#state{}) -> cfg().
  +-spec state__cfg(state()) -> cfg().
   
   state__cfg(#state{cfg=Cfg}) ->
     Cfg.
   
  --spec state__bb(#state{}, label()) -> bb().
  +-spec state__bb(state(), label()) -> bb().
   
   state__bb(#state{cfg=Cfg}, Label) ->
     BB = hipe_icode_cfg:bb(Cfg, Label),
     true = hipe_bb:is_bb(BB), % Just an assert
     BB.
     
  --spec state__bb_add(#state{}, label(), bb()) -> #state{}.
  +-spec state__bb_add(state(), label(), bb()) -> state().
   
   state__bb_add(S=#state{cfg=Cfg}, Label, BB) ->
     NewCfg = hipe_icode_cfg:bb_add(Cfg, Label, BB),
  
positive.code:   catch throw:no_input -> ok
    end.
  
  -spec safe_analyse(cfg(), data()) -> #state{}.
  
  safe_analyse(CFG, Data={MFA,_,_,_}) ->
    State = state__init(CFG, Data),
  
negative.code: rewrite_blocks([], State, _) ->
    State.
  
  -spec analyse_blocks(state(), work_list()) -> state().
  
  analyse_blocks(State, Work) ->
    case get_work(Work) of
  