anchor.diff:          Seq.fold (fun s key -> Map.remove key s) map keys
   
       /// Retrieves the values from a Map
  -    let values (map : Map<'T,'b>) = 
  +    let inline values (map : Map<'T,'b>) = 
           map |> Map.toSeq |> Seq.map snd
   
       /// Retrieves the keys from a Map    
  -    let keys (map : Map<'T,'b>) = 
  +    let inline keys (map : Map<'T,'b>) = 
           map |> Map.toSeq |> Seq.map fst
   
       /// Retrieves the key set from a Map
  
positive.code: 
  /// Extensions for F#'s Map module.
  module Map =
      let spanWithKey pred map =
          map
          |> Map.fold (fun (l,r) k v ->
  
negative.code:     let valueList map = map |> Map.toList |> List.unzip |> snd
  
      /// Combines the two Maps into a single Map
      let inline union (loses: Map<'k, 'v>) (wins: Map<'k, 'v>) = 
          Map.fold (fun m k v -> Map.add k v m) loses wins
  
      /// Combines the two Maps into a single Map, with custom decisioning on what happens in case of conflict
      let inline unionWith (decide : 'k -> 'v -> 'v -> 'v) (m1:Map<'k, 'v>) (m2:Map<'k, 'v>) =
          let inline add m k v1 =
              let v = match Map.tryFind k m with
                      | None    -> v1
                      | Some v2 -> decide k v1 v2
              Map.add k v m
          Map.fold add m1 m2
  
      let choose (f : 'T -> 'b -> 'c option) (map : Map<'T,'b>) =
          (Map.empty, map) ||> Map.fold (fun s k v -> 
  