anchor.diff:  	initialized -> error({unassigned,Src});
   	{catchtag,_} -> error({catchtag,Src});
   	{trytag,_} -> error({trytag,Src});
  -	{match_context,_,_} -> error({match_context,Src});
  +	#ms{} -> error({match_context,Src});
   	Type -> Type
       end.
   
  
positive.code:     case Ctx of
  	{Tag,X} when Tag =:= x; Tag =:= y ->
  	    Type = case gb_trees:lookup(X, Xs) of
  		       {value,{match_context,_,_}} -> term;
  		       _ -> get_term_type(Ctx, Vst)
  		   end,
  	    set_type_reg(Type, Ctx, Vst);
  
negative.code: 
  bsm_get_context({x,X}=Reg, #vst{current=#st{x=Xs}}=_Vst) when is_integer(X) ->
      case gb_trees:lookup(X, Xs) of
  	{value,#ms{}=Ctx} -> Ctx;
  	_ -> error({no_bsm_context,Reg})
      end;
  bsm_get_context(Reg, _) -> error({bad_source,Reg}).
  