anchor.diff:  bucket(#bucket{name=Name, date=Date}) ->
       #'ListAllMyBucketsEntry'{ 'Name' = Name,
                                 'CreationDate' = Date }.
  +
  +object(#object{name=Name, date=Date, size=Size}) ->
  +    #'ListEntry'{ 'Key'          = binary_to_list(Name),
  +                  'LastModified' = Date,
  +                  'ETag'         = "123",
  +                  'Size'         = io_lib:format("~w", [Size]),
  +                  'StorageClass' = "STANDARD" }.
   
   %% ===================================================================
   %%                             Utility
  
positive.code: -include("bookshelf.hrl").
  -export([
           list_buckets/1,
           model/0,
           write/1,
           write_hrl/0,
  
negative.code:     #'ListAllMyBucketsResult'{ 'Owner'   = owner(),
                                 'Buckets' = buckets(Buckets) }.
  
  list_objects({Bucket, Objects}) ->
      #'ListBucketResult'{ 'Name'        = Bucket,
                           'Prefix'      = "",
                           'Marker'      = "",
                           'MaxKeys'     = 10000,
                           'IsTruncated' = false,
                           'Contents'    = lists:map(fun object/1,
                                                     Objects) }.
  
  %% ===================================================================
  %%                             Partials
  %% ===================================================================
  