@@ -1,25 +1,25 @@
11module Type.Inference where
22
3+import Control.Arrow (first, second)
4+import Control.Monad.State (execStateT, forM)
5+import Control.Monad.Error (ErrorT, runErrorT, liftIO, throwError)
36import qualified Data.Map as Map
4−
5−import qualified Type.Type as T
6−import qualified Type.Environment as Env
7−import qualified Type.Constrain.Expression as TcExpr
8−import qualified Type.Solve as Solve
7+import Text.PrettyPrint
98
109import qualified AST.Annotation as A
1110import AST.Module as Module
1211import AST.Type (CanonicalType)
1312import qualified AST.Variable as Var
14−import Text.PrettyPrint
15−import qualified Type.State as TS
13+import qualified Type.Constrain.Expression as TcExpr
14+import qualified Type.Environment as Env
1615import qualified Type.ExtraChecks as Check
17−import Control.Arrow (first, second)
18−import Control.Monad.State (execStateT, forM)
19−import Control.Monad.Error (ErrorT, runErrorT, liftIO, throwError)
16+import qualified Type.Solve as Solve
17+import qualified Type.State as TS
18+import qualified Type.Type as T
2019
21−import System.IO.Unsafe -- Possible to switch over to the ST monad instead of
22− -- the IO monad. I don't think that'd be worthwhile.
20+import System.IO.Unsafe
21+ -- Maybe possible to switch over to ST instead of IO.
22+ -- I don't think that'd be worthwhile though.
2323
2424
2525infer :: Interfaces -> CanonicalModule -> Either [Doc] (Map.Map String CanonicalType)