Avoid double-lookup dictionaries: .ContainsKey key followed by .[key] should be replaced with .TryGetValue x for example: ```fsharp match xs.ContainsKey x with | true -> ... xs.[x] ... | false -> ///... ``` should be replaced with ```fsharp match xs.TryGetValue x with | true, xVal -> ... xVal ... | false, _ -> ///... ```