elm/compiler/Types/Unify.hs
2013-05-28 06:47:36 -07:00

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