anchor.diff:  %% @doc Renders HTML page for response
   -spec render_page(TemplateName :: string(),
                     Req0 :: cowboy_req:req(),
  -                  State :: macaba_web:html_state()) -> handler_return().
  +                  State :: macaba_web:html_state()) ->
  +                     macaba_web:handler_return().
   
   render_page(TemplateName, Req0, State0) ->
     render_page(200, TemplateName, Req0, State0).
  
positive.code: %%%------------------------------------------------------------------------
  %% @doc Runs list of functions passing opaque state through them and stopping
  %% if any of functions returns error.
  -type handler_fun_t() :: fun((handler_return()) -> chain_return()).
  -spec chain_run([handler_fun_t()],
                  State :: any()) -> chain_return().
  
  chain_run([], State) -> {ok, State};
  chain_run([F | Tail], State) ->
  
negative.code:         ThreadId :: binary(),
          PostId :: binary(),
          Req0 :: cowboy_req:req(),
          State :: macaba_web:html_state()) -> macaba_web:handler_return().
  
  redirect_to_thread_and_post(BoardId, ThreadId, PostId, Req, State) ->
     redirect("/board/" ++ macaba:as_string(BoardId) ++ "/thread/"
  