anchor.diff:  %% L17 - 304 Not Modified
   %% last_modified again
   
  -%% Webmachine Update Callbacks -------------------------------------------------
  +%%% Webmachine Update Callbacks ------------------------------------------------
   
   %% M16
   %% M20 - 500 Internal Server Error
   delete_resource(ReqData, Context) ->
  -  %% Process DELETE
  +  % Process DELETE
     {false, ReqData, Context}.
   %% 202 Accepted
   delete_completed(ReqData, Context) ->
  -  %% Check if DELETE is sync
  +  % Check if DELETE is sync
     {true, ReqData, Context}.
   
   
   %% N16
   %% N11 - 303 See Other
   post_is_create(ReqData, Context) ->
  -  %% Check if POST should as PUT to an unknown URI
  -  %% FIXME POST_as_PUT should just continue to o16 (there can be a conflict if create_path is)
  +  % Check if POST should as PUT to an unknown URI
  +  % FIXME POST_as_PUT should just continue to o16 (there can be a conflict if create_path is)
     {false, ReqData, Context}.
   create_path(ReqData, Context) ->
  -  %% Create a URI for a POST (as PUT)
  -  %% Set response Location header
  +  % Create a URI for a POST (as PUT)
  +  % Set response Location header
     {undefined, ReqData, Context}.
   process_post(ReqData, Context) ->
  -  %% Process POST
  +  % Process POST
     {false, ReqData, Context}.
   
   %% O16
   %% O14 - 409 Conflict
   is_conflict(ReqData, Context) ->
  -  %% Check if PUT is conflict
  +  % Check if PUT is conflict
     {false, ReqData, Context}.
   %% content_types_accepted, knownw_media_type, content_types_accepted:handler (accept_helper)
   
  -%% Webmachine Create Callbacks -------------------------------------------------
  +%%% Webmachine Create Callbacks ------------------------------------------------
   
   %% H7 - 412 Precondition Failed
   %% I7
   %% I4 - 301 Moved Permanently + SET RESP HEADER Location
   moved_permanently(ReqData, Context) ->
  -  %% Check if resource has moved permanently
  +  % Check if resource has moved permanently
     {false, ReqData, Context}.
   %% P3 - 409 Conflict
   %% is_conflict
  
positive.code: 
  %% B09 - 400 Bad Request
  malformed_request(ReqData, Context) ->
    %% Check known media type
    %% [PLACEHOLDER]
    %% Check JSON syntax
    %% [PLACEHOLDER]
    %% Check JSON Schema
    %% [PLACEHOLDER]
    %% Translate MT to Context:args
    %% [PLACEHOLDER]
    {false, ReqData, Context}.
  
  %% B08 - 401 Unauthorized
  is_authorized(ReqData, Context) ->
    %% Get auth info for token
    %% [PLACEHOLDER]
    %% Check if token is valid
    {true, ReqData, Context}.
  
  %% B07 - 403 Forbidden
  forbidden(ReqData, Context) ->
    %% Check if {Method, URI, Headers} is forbidden
    %% Do NOT check against Context:args
    %% FIXME Where do you check if Context:args are forbidden ?
    {false, ReqData, Context}.
  
  %% B06 - 501 Not Implemented
  valid_content_headers(ReqData, Context) ->
    %% Check if 'Content-*' headers are valid
    {true, ReqData, Context}
  
  %% B05 - 415 Unsupported Media Type
  known_media_type(ReqData, Context) ->
    %% Check known media type
    {true, ReqData, Context}.
  
  %% B04 - 413 Request Entity Too Large
  valid_entity_length(ReqData, Context) ->
    %% Maybe check media type
    %% [PLACEHOLDER]
    %% Check if request entity is too large
    {true, ReqData, Context}.
  
  %% B03 - 200 OK
  options(ReqData, Context) ->
    %% Headers for OPTIONS, if request is OPTIONS
    [].
  
  %% Webmachine Accept Callbacks -------------------------------------------------
  
  %% C03
  %% C04 - 406 Not Acceptable
  content_types_provided(ReqData, Context) ->
    %% Check if content-type is available
    %% Specify content-type output handlers [{media-type, handler}]
    %% Or as [{{media-type,[{param, value}]}, handler}]
    [].
    %% FIXME - should webmachine enforce 406 on no match?
  
  %% D04
  %% D05 - 406 Not Acceptable
  language_available(ReqData, Context) ->
    %% Check if language is available
    {true, ReqData, Context}.
  
  %% E05
  %% E06 - 406 Not Acceptable
  charsets_provided(ReqData, Context) ->
    %% Check if charset is available
    %% Specify output charsets handlers [{charset, handler}]
    {no_charset, ReqData, Context}.
  
  %% F06
  %% FIXME SET RESP HEADER Content-Type
  %% F07 - 406 Not Acceptable
  encodings_provided(ReqData, Context) ->
    %% Check if encoding is available
    %% Specify encoding output handlers [{encoding, handler}]
    [{"identity"}, fun(X) -> X end}].
  
  %% Webmachine Resource Doesn't Exist Callbacks ---------------------------------
  
  %% G07
  %% content_types_provided, encodings_provided, charsets_provided (wdc:variances)
  variances(ReqData, Context) ->
    %% Request headers for building the response Vary header
    %% other than Accept, Accept-Encoding, Accept-Charset, Accept-Language
    {[], ReqData, Context}.
  %% FIXME SET RESP HEADER Vary
  resource_exists(ReqData, Context) ->
    %% Maybe read from DB
    %% [PLACEHOLDER]
    %% Check if resource exists
    {true, ReqData, Context}.
  
  %% Webmachine Conditional Callbacks --------------------------------------------
  
  %% G08
  %% G09
  %% G11 - 412 Precondition Failed
  generate_etag(ReqData, Context) ->
    %% Maybe generate ETag by hashing the output from content-type output handler
    {undefined, ReqData, Context}.
  
  %% H10
  %% H11
  %% H12 - 412 Precondition Failed
  last_modified(ReqData, Context) ->
    %% Maybe generate Last-Modified from DB
    {undefined, ReqData, Context}.
  
  %% I12
  
negative.code:         , known_media_type/2
          , valid_entity_length/2
          , options/2
          %%% Webmachine Accept Callbacks ----------------------------------------
          , content_types_provided/2
          , language_available/2
          , charsets_provided/2
          , encodings_provided/2
          %%% Webmachine Resource Doesn't Exist Callbacks ------------------------
          , variances/2
          , resource_exists/2
          %%% Webmachine Conditional Callbacks -----------------------------------
          , generate_etag/2
          , last_modified/2
          %%% Webmachine Update Callbacks ----------------------------------------
          , delete_resource/2
          , delete_completed/2
          , post_is_create/2
          , create_path/2
          , process_post/2
          , is_conflict/2
          %%% Webmachine Create Callbacks ----------------------------------------
          , moved_permanently/2
          , previously_existed/2
          , moved_temporarily/2
          , allow_missing_post/2
          %%% Webmachine Output Callbacks ----------------------------------------
          , expires/2
          , multiple_choices/2
          , finish_request/2
  