@@ -10,6 +10,7 @@ import Control.Monad
10import qualified Data.Map.Strict as Map
10import qualified Data.Map.Strict as Map
11import Data.Map.Strict ((!))
11import Data.Map.Strict ((!))
12import qualified Data.Name as Name
12import qualified Data.Name as Name
13+import qualified Data.NonEmptyList as NE
13import qualified Data.Vector as Vector
14import qualified Data.Vector as Vector
14import qualified Data.Vector.Mutable as MVector
15import qualified Data.Vector.Mutable as MVector
@@ -29,7 +30,7 @@ import qualified Type.UnionFind as UF
29-- RUN SOLVER
30-- RUN SOLVER
32−run :: Constraint -> IO (Either [Error.Error] (Map.Map Name.Name Can.Annotation))
33+run :: Constraint -> IO (Either (NE.List Error.Error) (Map.Map Name.Name Can.Annotation))
33run constraint =
34run constraint =
34 do pools <- MVector.replicate 8 []
35 do pools <- MVector.replicate 8 []
@@ -40,8 +41,8 @@ run constraint =
41 Right <$> traverse Type.toAnnotation env
42 Right <$> traverse Type.toAnnotation env
44− return $ Left errors
45+ return $ Left (NE.List e es)