@@ -6,7 +6,6 @@ import qualified Data.Either as Either
6import Data.Function (on)
6import Data.Function (on)
7import qualified Data.List as List
7import qualified Data.List as List
8import qualified Data.Map as Map
8import qualified Data.Map as Map
9−import Data.Maybe (fromMaybe)
10import qualified Data.Set as Set
9import qualified Data.Set as Set
11import qualified Text.EditDistance as Dist
10import qualified Text.EditDistance as Dist
@@ -26,7 +25,7 @@ variable env var =
26 Env.using (Var.Canonical (Var.Module name) varName)
25 Env.using (Var.Canonical (Var.Module name) varName)
29− case Map.lookup var (_values env) of
28+ case Set.toList `fmap` Map.lookup var (_values env) of
30 Just [v] -> Env.using v
29 Just [v] -> Env.using v
31 Just vs -> preferLocals env "variable" vs var
30 Just vs -> preferLocals env "variable" vs var
32 Nothing -> notFound "variable" (Map.keys (_values env)) var
31 Nothing -> notFound "variable" (Map.keys (_values env)) var
@@ -43,10 +42,10 @@ tvar env var =
43 vs -> preferLocals' env extract "type" vs var
42 vs -> preferLocals' env extract "type" vs var
46− map Left (fromMaybe [] (Map.lookup var (_adts env)))
45+ map Left (maybe [] Set.toList (Map.lookup var (_adts env)))
49− map Right (fromMaybe [] (Map.lookup var (_aliases env)))
48+ map Right (maybe [] Set.toList (Map.lookup var (_aliases env)))
51 extract value =
50 extract value =
52 case value of
51 case value of
@@ -56,7 +55,7 @@ tvar env var =
57pvar :: Environment -> String -> Canonicalizer String Var.Canonical
56pvar :: Environment -> String -> Canonicalizer String Var.Canonical
58pvar env var =
57pvar env var =
59− case Map.lookup var (_patterns env) of
58+ case Set.toList `fmap` Map.lookup var (_patterns env) of
60 Just [v] -> Env.using v
59 Just [v] -> Env.using v
61 Just vs -> preferLocals env "pattern" vs var
60 Just vs -> preferLocals env "pattern" vs var
62 Nothing -> notFound "pattern" (Map.keys (_patterns env)) var
61 Nothing -> notFound "pattern" (Map.keys (_patterns env)) var