anchor.diff:  		true -> Doc end end,
   	list_to_tuple (doc_foldr (Fun, [], Document)).
   
  --spec update (label(), value(), document()) -> document().
  +%-spec update (label(), value(), document()) -> document().
   % Replace field with new value, adding to end if new
   update (Label, Value, Document) -> case find (Label, Document) of
   	{Index} -> setelement (Index * 2 + 2, Document, Value);
  
positive.code: 		{} -> Doc end end,
  	list_to_tuple (lists:foldr (Fun, [], Labels)).
  
  -spec exclude ([label()], document()) -> document().
  % Remove given fields from document
  exclude (Labels, Document) ->
  	Fun = fun (Label, Value, Doc) -> case lists:member (Label, Labels) of
  
negative.code: % A BSON document is a JSON-like object with a standard binary encoding defined at bsonspec.org. This implements version 1.0 of that spec.
  -module (bson).
  
  %-export_type ([maybe/1]).
  %-export_type ([document/0, label/0, value/0]).
  %-export_type ([bin/0, bfunction/0, uuid/0, md5/0, userdefined/0]).
  %-export_type ([mongostamp/0, minmaxkey/0]).
  %-export_type ([regex/0, unixtime/0]).
  %-export_type ([javascript/0]).
  %-export_type ([objectid/0, unixsecs/0]).
  
  -export ([lookup/2, at/2, include/2, exclude/2, update/3, merge/2, append/2]).
  -export ([doc_foldl/3, doc_foldr/3, fields/1, document/1]).
  