@@ -1,11 +1,13 @@
11{-# OPTIONS_GHC -Wall #-}
2−module Validate (Result, module') where
2+{-# LANGUAGE OverloadedStrings #-}
3+module Validate (Result, validate) where
34
45import Control.Monad (foldM_, when)
6+import qualified Data.Foldable as F
57import qualified Data.Map as Map
68import qualified Data.Maybe as Maybe
79import qualified Data.Set as Set
8−import qualified Data.Foldable as F
10+import Data.Text (Text)
911
1012import qualified AST.Effects as Effects
1113import qualified AST.Expression.Source as Src
@@ -32,8 +34,8 @@ type Result warning a =
3234-- MODULES
3335
3436
35−module' :: Module.Source -> Result wrn Module.Valid
36−module' (Module.Module name path info) =
37+validate :: Module.Source -> Result wrn Module.Valid
38+validate (Module.Module name path info) =
3739 let
3840 (ModuleName.Canonical pkgName _) =
3941 name
@@ -127,7 +129,7 @@ noPorts ports =
127129
128130toManagerType
129131 :: R.Region
130− -> Map.Map String [(R.Region, A.Located String)]
132+ -> Map.Map Text [(R.Region, A.Located Text)]
131133 -> Result wrn Effects.ManagerType
132134toManagerType tagRegion settingsDict =
133135 let
@@ -163,9 +165,9 @@ toManagerType tagRegion settingsDict =
163165
164166
165167extractOne
166− :: String
167− -> Map.Map String [(R.Region, A.Located String)]
168− -> Result wrn (Maybe (A.Located String))
168+ :: Text
169+ -> Map.Map Text [(R.Region, A.Located Text)]
170+ -> Result wrn (Maybe (A.Located Text))
169171extractOne name settingsDict =
170172 case Map.lookup name settingsDict of
171173 Nothing ->
@@ -202,7 +204,7 @@ checkManager tagRegion managerType validDefs =
202204 <*> requireRegion tagRegion regionDict "onSelfMsg"
203205
204206
205−getSimpleDefRegion :: A.Commented Src.ValidDef -> Maybe (String, R.Region)
207+getSimpleDefRegion :: A.Commented Src.ValidDef -> Maybe (Text, R.Region)
206208getSimpleDefRegion decl =
207209 case decl of
208210 A.A _ (Src.Def region (A.A _ (Pattern.Var name)) _ _) ->
@@ -214,7 +216,7 @@ getSimpleDefRegion decl =
214216
215217requireMaps
216218 :: R.Region
217− -> Map.Map String R.Region
219+ -> Map.Map Text R.Region
218220 -> Effects.ManagerType
219221 -> Result wrn ()
220222requireMaps tagRegion regionDict managerType =
@@ -234,7 +236,7 @@ requireMaps tagRegion regionDict managerType =
234236 check "cmdMap" <* check "subMap"
235237
236238
237−requireRegion :: R.Region -> Map.Map String R.Region -> String -> Result wrn R.Region
239+requireRegion :: R.Region -> Map.Map Text R.Region -> Text -> Result wrn R.Region
238240requireRegion tagRegion regionDict name =
239241 case Map.lookup name regionDict of
240242 Just region ->
@@ -438,7 +440,7 @@ validateDefPattern pattern body =
438440 Result.throw (R.merge start end) (Error.BadFunctionName (length args))
439441
440442
441−checkArguments :: String -> [Pattern.Raw] -> Result wrn ()
443+checkArguments :: Text -> [Pattern.Raw] -> Result wrn ()
442444checkArguments funcName args =
443445 let
444446 vars =
@@ -532,7 +534,7 @@ both (expr1, expr2) =
532534 (,) <$> expression expr1 <*> expression expr2
533535
534536
535−checkDuplicateFields :: R.Region -> [(A.Located String, a)] -> Result wrn ()
537+checkDuplicateFields :: R.Region -> [(A.Located Text, a)] -> Result wrn ()
536538checkDuplicateFields recordRegion fields =
537539 let
538540 checkDups seenFields ( A.A region field, _ ) =
@@ -598,7 +600,7 @@ checkDuplicates (ValidStuff ports (D.Decls defs unions aliases _)) =
598600 ]
599601
600602
601−detectDuplicates :: (String -> Error.Error) -> [A.Located String] -> Result wrn ()
603+detectDuplicates :: (Text -> Error.Error) -> [A.Located Text] -> Result wrn ()
602604detectDuplicates tag names =
603605 let
604606 add (A.A region name) dict =
@@ -654,7 +656,7 @@ checkTypeVarsInAlias (A.A (region,_) (D.Type name boundVars tipe)) =
654656 (Error.MessyTypeVarsInAlias name boundVars unused unbound)
655657
656658
657−diff :: [String] -> [A.Located String] -> ([String], [String])
659+diff :: [Text] -> [A.Located Text] -> ([Text], [Text])
658660diff left right =
659661 let
660662 leftSet =
@@ -668,7 +670,7 @@ diff left right =
668670 )
669671
670672
671−freeVars :: Type.Raw -> Result wrn [A.Located String]
673+freeVars :: Type.Raw -> Result wrn [A.Located Text]
672674freeVars (A.A region tipe) =
673675 case tipe of
674676 Type.RLambda t1 t2 ->