anchor.diff:      let findOrDefault key defaultValue (map : Map<'T,'b>) =
           defaultArg (map.TryFind key) defaultValue
     
  -  /// The catOptions function takes a map of Options and values and returns a map of all the Some keys and values.
  -    let catOptionKeys (m:Map<Option<'a>, 'b>) =
  +    /// The catOptions function takes a map of Options and values and returns a map of all the Some keys and values.
  +    let inline catOptionKeys (table:Map<Option<'a>, 'b>) =
           seq {
  -            for k, v in Map.toSeq m do
  +            for k, v in Map.toSeq table do
                   if k.IsSome then yield k.Value, v
           }
           |> Map.ofSeq
     
  -  /// The catOptions function takes a map of keys and Options and returns a map of all the keys and Some values.
  -    let catOptionValues (m:Map<'a, Option<'b>>) =
  -        seq {
  -            for k, v in Map.toSeq m do
  -                if v.IsSome then yield k, v.Value
  -        }
  -        |> Map.ofSeq
  +    /// The catOptions function takes a map of keys and Options and returns a map of all the keys and Some values.
  +    let inline catOptionValues (table:Map<'a, Option<'b>>) =
  +        let chooser _ vo = vo
  +        choose chooser table
   
       /// Compares two maps for equality using the given comparison function, element by element.
       let inline equalsWith eq xs ys =
  
positive.code:       } 
  
      /// The catOptions function takes a list of Options and returns a seq of all the Some values.
      let catOptions (xs:seq<Option<'a>>) =
          seq {
              for x in xs do
                  if x.IsSome then yield x.Value
          }
      
      /// Compares two sequences for equality using the given comparison function, element by element.
      let inline equalsWith eq xs ys = Seq.compareWith (fun x y -> if eq x y then 0 else 1) xs ys = 0
  
  
negative.code:                         else Some(Array.averageBy Option.get window))
                    
      /// The catOptions function takes a list of Options and returns an array of all the Some values.
      let inline catOptions (xs:Option<'a>[]) = Array.choose id
  
  
      /// Compares two arrays for equality using the given comparison function, element by element.
      let inline equalsWith eq xs ys = Array.compareWith (fun x y -> if eq x y then 0 else 1) xs ys = 0
  