16 lines
427 B
Haskell
16 lines
427 B
Haskell
|
|
module Types.Unify (unify) where
|
|
|
|
import Control.Monad (liftM)
|
|
import qualified Data.Map as Map
|
|
|
|
import Ast
|
|
import Guid
|
|
import qualified Types.Constrain as Constrain
|
|
import qualified Types.Solver as Solver
|
|
import qualified Types.Alias as Alias
|
|
|
|
unify hints modul@(Module _ _ _ stmts) = run $ do
|
|
constraints <- Constrain.constrain hints modul
|
|
either (return . Left) (Solver.solver (Alias.get stmts) Map.empty) constraints
|
|
|