@@ -17,14 +17,14 @@ import Elm.Utils ((|>))
17import qualified Reporting.Annotation as A
17import qualified Reporting.Annotation as A
18import qualified Reporting.Error.Syntax as Error
18import qualified Reporting.Error.Syntax as Error
19import qualified Reporting.Region as R
19import qualified Reporting.Region as R
20−import qualified Reporting.Task as Task
20+import qualified Reporting.Result as Result
23-- VALIDATE DECLARATIONS
23-- VALIDATE DECLARATIONS
25declarations
25declarations
26 :: [D.SourceDecl]
26 :: [D.SourceDecl]
27− -> Task.Task wrn Error.Error [D.ValidDecl]
27+ -> Result.Result wrn Error.Error [D.ValidDecl]
28declarations sourceDecls =
28declarations sourceDecls =
29 do validDecls <- validateDecls sourceDecls
29 do validDecls <- validateDecls sourceDecls
30 (\_ _ -> validDecls)
30 (\_ _ -> validDecls)
@@ -34,7 +34,7 @@ declarations sourceDecls =
35validateDecls
35validateDecls
36 :: [D.SourceDecl]
36 :: [D.SourceDecl]
37− -> Task.Task wrn Error.Error [D.ValidDecl]
37+ -> Result.Result wrn Error.Error [D.ValidDecl]
38validateDecls sourceDecls =
38validateDecls sourceDecls =
39 case sourceDecls of
39 case sourceDecls of
@@ -47,7 +47,7 @@ validateDecls sourceDecls =
47validateDeclsHelp
47validateDeclsHelp
48 :: D.SourceDecl
48 :: D.SourceDecl
49 -> [D.SourceDecl]
49 -> [D.SourceDecl]
50− -> Task.Task wrn Error.Error [D.ValidDecl]
50+ -> Result.Result wrn Error.Error [D.ValidDecl]
51validateDeclsHelp (A.A region decl) decls =
51validateDeclsHelp (A.A region decl) decls =
52 let addRest validDecl =
52 let addRest validDecl =
53 (:) (A.A region validDecl) <$> validateDecls decls
53 (:) (A.A region validDecl) <$> validateDecls decls
@@ -74,7 +74,7 @@ validateDeclsHelp (A.A region decl) decls =
75 :: Source.Def
75 :: Source.Def
76 -> [D.SourceDecl]
76 -> [D.SourceDecl]
77− -> Task.Task wrn Error.Error [D.ValidDecl]
77+ -> Result.Result wrn Error.Error [D.ValidDecl]
78defHelp (A.A region def) decls =
78defHelp (A.A region def) decls =
79 let addRest def' rest =
79 let addRest def' rest =
80 (:) (A.A region (D.Definition def')) <$> validateDecls rest
80 (:) (A.A region (D.Definition def')) <$> validateDecls rest
@@ -94,7 +94,7 @@ defHelp (A.A region def) decls =
94 addRest def' rest
94 addRest def' rest
97− Task.throw region (Error.TypeWithoutDefinition name)
97+ Result.throw region (Error.TypeWithoutDefinition name)
100-- VALIDATE PORTS IN DECLARATIONS
100-- VALIDATE PORTS IN DECLARATIONS
@@ -103,14 +103,14 @@ portHelp
103 :: R.Region
103 :: R.Region
104 -> D.SourcePort
104 -> D.SourcePort
105 -> [D.SourceDecl]
105 -> [D.SourceDecl]
106− -> Task.Task wrn Error.Error [D.ValidDecl]
106+ -> Result.Result wrn Error.Error [D.ValidDecl]
107portHelp region port decls =
107portHelp region port decls =
108 let addRest port' rest =
108 let addRest port' rest =
109 (:) (A.A region (D.Port port')) <$> validateDecls rest
109 (:) (A.A region (D.Port port')) <$> validateDecls rest
111 case port of
111 case port of
112 D.PortDefinition name _ ->
112 D.PortDefinition name _ ->
113− Task.throw region (Error.PortWithoutAnnotation name)
113+ Result.throw region (Error.PortWithoutAnnotation name)
115 D.PortAnnotation name tipe ->
115 D.PortAnnotation name tipe ->
116 case decls of
116 case decls of
@@ -126,7 +126,7 @@ portHelp region port decls =
127-- VALIDATE DEFINITIONS
127-- VALIDATE DEFINITIONS
129−definitions :: [Source.Def] -> Task.Task wrn Error.Error [Valid.Def]
129+definitions :: [Source.Def] -> Result.Result wrn Error.Error [Valid.Def]
130definitions sourceDefs =
130definitions sourceDefs =
131 do validDefs <- definitionsHelp sourceDefs
131 do validDefs <- definitionsHelp sourceDefs
132 let patterns = map (\(Valid.Definition p _ _) -> p) validDefs
132 let patterns = map (\(Valid.Definition p _ _) -> p) validDefs
@@ -134,7 +134,7 @@ definitions sourceDefs =
134 return validDefs
134 return validDefs
137−definitionsHelp :: [Source.Def] -> Task.Task wrn Error.Error [Valid.Def]
137+definitionsHelp :: [Source.Def] -> Result.Result wrn Error.Error [Valid.Def]
138definitionsHelp sourceDefs =
138definitionsHelp sourceDefs =
139 case sourceDefs of
139 case sourceDefs of
@@ -154,12 +154,12 @@ definitionsHelp sourceDefs =
154 (:) def <$> definitionsHelp rest'
154 (:) def <$> definitionsHelp rest'
157− Task.throw region (Error.TypeWithoutDefinition name)
157+ Result.throw region (Error.TypeWithoutDefinition name)
160-- VALIDATE EXPRESSIONS
160-- VALIDATE EXPRESSIONS
162−expression :: Source.Expr -> Task.Task wrn Error.Error Valid.Expr
162+expression :: Source.Expr -> Result.Result wrn Error.Error Valid.Expr
163expression (A.A ann sourceExpression) =
163expression (A.A ann sourceExpression) =
164 A.A ann <$>
164 A.A ann <$>
165 case sourceExpression of
165 case sourceExpression of
@@ -250,14 +250,14 @@ expression (A.A ann sourceExpression) =
250 return (Task name expr' tipe)
250 return (Task name expr' tipe)
253−second :: (a, Source.Expr) -> Task.Task wrn Error.Error (a, Valid.Expr)
253+second :: (a, Source.Expr) -> Result.Result wrn Error.Error (a, Valid.Expr)
254second (value, expr) =
254second (value, expr) =
255 (,) value <$> expression expr
255 (,) value <$> expression expr
259 :: (Source.Expr, Source.Expr)
259 :: (Source.Expr, Source.Expr)
260− -> Task.Task wrn Error.Error (Valid.Expr, Valid.Expr)
260+ -> Result.Result wrn Error.Error (Valid.Expr, Valid.Expr)
261both (expr1, expr2) =
261both (expr1, expr2) =
262 (,) <$> expression expr1 <*> expression expr2
262 (,) <$> expression expr1 <*> expression expr2
@@ -267,7 +267,7 @@ both (expr1, expr2) =
267detectDuplicates
267detectDuplicates
268 :: (String -> Error.Error)
268 :: (String -> Error.Error)
269 -> [A.Located String]
269 -> [A.Located String]
270− -> Task.Task wrn Error.Error ()
270+ -> Result.Result wrn Error.Error ()
271detectDuplicates tag names =
271detectDuplicates tag names =
272 let add (A.A region name) dict =
272 let add (A.A region name) dict =
273 Map.insertWith (++) name [region] dict
273 Map.insertWith (++) name [region] dict
@@ -278,7 +278,7 @@ detectDuplicates tag names =
278 check (name, regions) =
278 check (name, regions) =
279 case regions of
279 case regions of
280 _ : region : _ ->
280 _ : region : _ ->
281− Task.throw region (tag name)
281+ Result.throw region (tag name)
284 return ()
284 return ()
@@ -288,13 +288,13 @@ detectDuplicates tag names =
289defDuplicates
289defDuplicates
290 :: [Pattern.RawPattern]
290 :: [Pattern.RawPattern]
291− -> Task.Task wrn Error.Error ()
291+ -> Result.Result wrn Error.Error ()
292defDuplicates patterns =
292defDuplicates patterns =
293 concatMap Pattern.boundVars patterns
293 concatMap Pattern.boundVars patterns
294 |> detectDuplicates Error.DuplicateDefinition
294 |> detectDuplicates Error.DuplicateDefinition
297−declDuplicates :: [D.ValidDecl] -> Task.Task wrn Error.Error ()
297+declDuplicates :: [D.ValidDecl] -> Result.Result wrn Error.Error ()
298declDuplicates decls =
298declDuplicates decls =
299 let (valueLists, typeLists) = unzip (map extractValues decls)
299 let (valueLists, typeLists) = unzip (map extractValues decls)
@@ -339,7 +339,7 @@ extractValues (A.A region decl) =
340-- UNBOUND TYPE VARIABLES
340-- UNBOUND TYPE VARIABLES
342−checkDecl :: D.ValidDecl -> Task.Task wrn Error.Error ()
342+checkDecl :: D.ValidDecl -> Result.Result wrn Error.Error ()
343checkDecl (A.A _ decl) =
343checkDecl (A.A _ decl) =
344 case decl of
344 case decl of
345 D.Definition _ ->
345 D.Definition _ ->
@@ -358,14 +358,14 @@ checkDecl (A.A _ decl) =
358 return ()
358 return ()
361−checkTypeVars :: String -> [String] -> Type.Raw -> Task.Task wrn Error.Error ()
361+checkTypeVars :: String -> [String] -> Type.Raw -> Result.Result wrn Error.Error ()
362checkTypeVars name boundVars tipe =
362checkTypeVars name boundVars tipe =
363 let bounds = Set.fromList boundVars
363 let bounds = Set.fromList boundVars
365 check (A.A region free) =
365 check (A.A region free) =
366 if Set.member free bounds
366 if Set.member free bounds
367 then return ()
367 then return ()
368− else Task.throw region (Error.UnboundTypeVar name free)
368+ else Result.throw region (Error.UnboundTypeVar name free)
370 F.traverse_ check (freeVars tipe)
370 F.traverse_ check (freeVars tipe)