anchor.diff:  /// A product with an associated price
   type Product = {ProductName : string; ProductPrice : decimal<GBP>}
   
  -/// A pickler/unpickler pair for products
  -let productPickler =
  -    let nameDecPickler = BinaryPickler.tuple2 BinaryPickler.utf8PU BinaryPickler.decimalPU
  +/// 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) nameDecPickler
  +    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 pickler which will pickle/unpickle the underlying data and provide functions that construct and deconstruct data from that form.
  +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 pickler of type 'a and produce a pickler that pickles the corresponding collection type.
  +The list and array combinators take a PU of type 'a and produce a pickler that pickles the corresponding collection type.
   
   *)
   
  -let intArrayPickler = BinaryPickler.array BinaryPickler.intPU
  +let intArrayPU = BinaryPickler.array BinaryPickler.intPU
   
  -let floatListPickler = BinaryPickler.list BinaryPickler.intPU
  +let floatListPU = BinaryPickler.list BinaryPickler.intPU
   
   (**
   
  -It is, of course, possible to combine several of these combinators to produce complicated list picklers, e.g.:
  +It is, of course, possible to combine several of these combinators to produce complicated list PUs, e.g.:
   
   *)
   
  
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: 
  (**
  
  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 beauty of pickler combinators is that the same PU can be used to transform data in both directions.
  
  ## Running PUs
  *)
  
  let bytes = BinaryPickler.pickle (BinaryPickler.intPU) 64 // convert the int value 64 into a byte array
  