anchor.diff:                  let idx = hashToIndex hkv.H dep
                   let idx' = hashToIndex hkv'.H dep
                   if idx <> idx' then
  -                    let arr = makeArray ()
  +                    let arr = cloneArray earr
                       arr.[idx] <- Singlet hkv
                       arr.[idx'] <- Singlet hkv'
                       Multiple arr
  
positive.code:             | Clash clashMap ->
                  Clash ^ Map.add hkv.K hkv.V clashMap
  
      let add k v node =
          add5 (Hkv (k, v)) 0 node
  
      let empty =
          Nil
  
  /// Variant map.
  type Vmap<'k, 'v when 'k : comparison> =
      private
          { Mdep : int
            Vnode : Vnode<'k, 'v> }
  
  [<RequireQualifiedAccess; CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
  module Vmap =
  
negative.code: [<RequireQualifiedAccess; CompilationRepresentation (CompilationRepresentationFlags.ModuleSuffix)>]
  module internal Vnode =
  
      let inline cloneArray (arr : Vnode<'k, 'v> array) : Vnode<'k, 'v> array =
  #if SIMPLE_CLONE_ARRAY
          arr.Clone () :?> Vnode<'k, 'v> array
  #else // use of this presumes Array.Clone () is slower
          let arr' = Array.zeroCreate 32 // there's an unecessary check against the size here, but that's the only inefficiency
          Array.Copy (arr, 0, arr', 0, 32)
          arr'
  #endif
  
      let inline private hashToIndex h dep =
          (h >>> (dep * 5)) &&& 0x1F
  
      let rec add (hkv : Hkv<'k, 'v>) (earr : Vnode<'k, 'v> array) (mdep : int) (dep : int) (node : Vnode<'k, 'v>) : Vnode<'k, 'v> =
          if dep <= mdep then
  
              // handle non-clash cases
  