anchor.diff:        Opts).
   
   format_fetch_msg_defs([]) ->
  -    gpb_codegen:format_fn(
  -      fetch_msg_def,
  -      fun(MsgName) -> erlang:error({no_such_msg, MsgName}) end);
  +    ["-spec fetch_msg_def(_) -> no_return().\n",
  +     gpb_codegen:format_fn(
  +       fetch_msg_def,
  +       fun(MsgName) -> erlang:error({no_such_msg, MsgName}) end)];
   format_fetch_msg_defs(_MsgDefs) ->
       gpb_codegen:format_fn(
         fetch_msg_def,
  
positive.code:       end).
  
  format_fetch_enum_defs([]) ->
      gpb_codegen:format_fn(
        fetch_enum_def,
        fun(EnumName) -> erlang:error({no_such_enum, EnumName}) end);
  format_fetch_enum_defs(_EnumDefs) ->
      gpb_codegen:format_fn(
        fetch_enum_def,
  
negative.code:                        || #?gpb_rpc{name=RpcName} = Rpc <- Rpcs])]).
  
  format_fetch_rpc_defs([]) ->
      ["-spec fetch_rpc_def(_, _) -> no_return().\n",
       gpb_codegen:format_fn(
         fetch_rpc_def,
         fun(ServiceName, RpcName) ->
                 erlang:error({no_such_rpc, ServiceName, RpcName})
         end)];
  format_fetch_rpc_defs(_ServiceDefs) ->
      gpb_codegen:format_fn(
        fetch_rpc_def,
  