anchor.diff:  state_member(_)                                              -> undefined.
   
   expected_type(#var{prefix = undefined, name = "PATH"})        -> string;
  +expected_type(#var{prefix = undefined, name = "CLIENT_IP"})   -> ipaddr;
   expected_type(#var{prefix = undefined, name = "CLIENT_PORT"}) -> port;
   expected_type(#var{prefix = undefined, name = "SERVER_NAME"}) -> string;
   expected_type(#var{prefix = undefined, name = "SERVER_PORT"}) -> port;
  
positive.code: domain(#var{prefix = Prefix})                          -> Prefix.
  
  state_member(#var{prefix = undefined, name = "PATH"})        -> "path";
  state_member(#var{prefix = undefined, name = "CLIENT_PORT"}) -> "client_port";
  state_member(#var{prefix = undefined, name = "SERVER_NAME"}) -> "server_name";
  state_member(#var{prefix = undefined, name = "SERVER_PORT"}) -> "server_port";
  
negative.code: get2(#state{path = Value} = State,
    #var{prefix = undefined, name = "PATH"}, undefined) ->
      {State, Value};
  get2(#state{client_ip = Value_C} = State,
    #var{prefix = undefined, name = "CLIENT_IP"}, undefined) ->
      Value_S = otis_type_ipaddr:to_string(Value_C),
      {State, Value_S};
  get2(#state{client_ip = Value_C} = State,
    #var{prefix = undefined, name = "CLIENT_IP"}, otis_type_ipaddr) ->
      {State, Value_C};
  get2(#state{client_port = Value_C} = State,
    #var{prefix = undefined, name = "CLIENT_PORT"}, undefined) ->
      Value_S = otis_type_port:to_string(Value_C),
  