anchor.diff:                          match PatriciaMap.Difference (s0, t) with
                           | Empty -> s1
                           | left ->
  +                            // OPTIMIZE : If left === s0 then return the map as-is instead of creating a new one.
                               Br (p, m, left, s1)
                       else
                           match PatriciaMap.Difference (s1, t) with
                           | Empty -> s0
                           | right ->
  +                            // OPTIMIZE : If right === s1 then return the map as-is instead of creating a new one.
                               Br (p, m, s0, right)
                   else s
   
  
positive.code:                     match PatriciaMap.Delete (k, s0) with
                      | Empty -> s1
                      | left ->
                          Br (p, m, left, s1)
                  else
                      match PatriciaMap.Delete (k, s1) with
                      | Empty -> s0
                      | right ->
                          Br (p, m, s0, right)
              else s
              
          | Br (_,_,_,_) as s, Empty ->
              s
          | (Lf (k, x) as s), t ->
              if PatriciaMap.ContainsKey (k, t) then Empty
              else s
          | Empty, _ ->
  
negative.code:         match map with
          | Empty ->
              Empty
          | Lf (j, _) ->
              if key = j then Empty
              else map
          | Br (p, m, t0, t1) ->
              if matchPrefix (key, p, m) then
                  if zeroBit (key, m) then
                      match PatriciaMap.Delete (key, t0) with
  