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>) =
  +        seq {
  +            for k, v in Map.toSeq m 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
   
   #if FX_PORTABLE
   #else
  
positive.code:             list
          else
              pad (total - List.length list) elem list
  
  [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
  /// Extensions for System.Collections.Generic.Dictionary.
  
negative.code:                         if Array.exists Option.isNone window
                          then None
                          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 catOptions (xs:Option<'a>[]) =
          [|
              for x in xs do
                  if x.IsSome then yield x.Value
          |]
  
  /// Extensions for F#'s List module.
  module List =
  