anchor.diff:          static member makeFromString<'a> (addressStr : string) =
               let names = addressStr.Split '/' |> List.ofArray |> List.map Name.make
               let hashCode = addressStr.GetHashCode ()
  -            { Names = names; AddressStr = addressStr; HashCode = hashCode; TypeCarrier = fun (_ : 'a) -> () }
  +            { Names = names; HashCode = hashCode; TypeCarrier = fun (_ : 'a) -> () }
   
           /// Hash an Address.
           static member hash (address : 'a Address) =
  
positive.code:         /// Equate Addresses.
          static member equals address address2 =
              address.HashCode = address2.HashCode && // OPTIMIZATION: first check hash equality
              address.AddressStr = address2.AddressStr
  
          /// Compare Addresses.
          static member compare address address2 =
              address.AddressStr.CompareTo address2.AddressStr
  
          /// Convert a string into an address.
          static member stoa<'a> str =
  
negative.code:             Address<'a>.hash this
          
          override this.ToString () =
              Address.atos<'a> this
  
      [<RequireQualifiedAccess>]
      module Address =
  
          /// The empty address.
          let empty<'a> =
              { Names = []; HashCode = String.Empty.GetHashCode (); TypeCarrier = fun (_ : 'a) -> () }
  
          /// Make an address from a list of names.
          let makeFromList<'a> names : 'a Address =
  