anchor.diff:      #'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
   %% ===================================================================
  
positive.code: bucket(#bucket{name=Name, date=Date}) ->
      #'ListAllMyBucketsEntry'{ 'Name' = Name,
                                'CreationDate' = Date }.
  
  %% ===================================================================
  %%                             Utility
  
negative.code: -include("bookshelf.hrl").
  -export([
           list_buckets/1,
           list_objects/1,
           model/0,
           write/1,
           write_hrl/0,
  