anchor.diff:  
   (**
   
  -These are just a few examples of the primitive picklers defined in this library.  These picklers can be used to serialise (pickle) or deserialise (unpickle) values of the type associated with their pickler to and from their binary representations.
  +These are just a few examples of the primitive PUs defined in this library.  These PUs can be used to serialise (pickle) or deserialise (unpickle) values of the type associated with their PU to and from their binary representations.
   
  -The same picklers can be used to transform data in both directions.
  +The beauty of pickler combinators is that the same PU can be used to transform data in both directions.
   
  -## Running picklers
  +## Running PUs
   *)
   
   let bytes = BinaryPickler.pickle (BinaryPickler.intPU) 64 // convert the int value 64 into a byte array
  
positive.code: 
  (**
  
  Here we use the pickle function to transform the int 64 into its binary representation and then transform it back using
  the unpickle function.
  
  ## Tuple combinators
  
  A variety of tuple combinators are provided to allow the pickling/unpickling of tuples.  These can be constructed, for example, 
  as follows:
  *)
  
  let intUtf8Pickler = BinaryPickler.tuple2 BinaryPickler.intPU BinaryPickler.utf8PU
  
  (**
  
  The tuple2 function is simply supplied with two picklers and it constructs a combined pickler.
  
  tuple3 and tuple4 functions are also provided, allowing the construction of more complex picklers.
  
  ## Wrapping picklers
  
  Rather than constructing data from tuples, we may wish to pickle/unpickle custom data types.  It is possible to do this by providing a function which constructs and deconstructs this custom data-type.
  
  
negative.code: /// A product with an associated price
  type Product = {ProductName : string; ProductPrice : decimal<GBP>}
  
  /// A pickler/unpickler pair (PU) for products
  let productPU =
      let nameDecPU = BinaryPickler.tuple2 BinaryPickler.utf8PU BinaryPickler.decimalPU
      let toProd (name,price) = {ProductName = name; ProductPrice = price*1.0M<GBP>} // tuple to product
      let fromProd prod = prod.ProductName, decimal prod.ProductPrice // product to tuple
      BinaryPickler.wrap (toProd, fromProd) nameDecPU
  
  (**
  
  Here, the custom record type contains a string and a decimal with a unit of measure so we define a tuple PU which will pickle/unpickle the underlying data and provide functions that construct and deconstruct data from that form.
  
  Data can then easily be read into or written from our custom data type.
  
  ## List and Array combinators
  
  The list and array combinators take a PU of type 'a and produce a pickler that pickles the corresponding collection type.
  
  *)
  
  let intArrayPU = BinaryPickler.array BinaryPickler.intPU
  
  let floatListPU = BinaryPickler.list BinaryPickler.intPU
  
  (**
  
  It is, of course, possible to combine several of these combinators to produce complicated list PUs, e.g.:
  
  *)
  
  