anchor.diff:  ).
   ----
   
  -Note that this function will return `{error, badarg}` if the structure
  -given is incorrect.
  -
   === Live update
   
   You can use the `cowboy:set_env/3` function for updating the dispatch
   list used by routing. This will apply to all new connections accepted
  -by the listener.
  +by the listener:
   
   [source,erlang]
   cowboy:set_env(my_http_listener, dispatch, cowboy_router:compile(Dispatch)).
   
  -Note that you need to compile the routes before updating.
  +Note that you need to compile the routes again before updating.
  
positive.code: 
  === Compilation
  
  The structure defined in this chapter needs to be compiled before it is
  passed to Cowboy. This allows Cowboy to efficiently lookup the correct
  handler to run instead of having to parse the routes repeatedly.
  
  This can be done with a simple call to `cowboy_router:compile/1`.
  
  [source,erlang]
  ----
  
negative.code: 
  Cowboy does nothing by default.
  
  To make Cowboy useful, you need to map URIs to Erlang modules that will
  handle the requests. This is called routing.
  
  When Cowboy receives a request, it tries to match the requested host and
  path to the configured routes. When there's a match, the route's
  associated handler is executed.
  
  Routes need to be compiled before they can be used by Cowboy.
  The result of the compilation is the dispatch rules.
  
  === Syntax
  
  The general structure for the routes is defined as follow.
  
  