@@ -14,7 +14,9 @@
1414-----------------------------------------------------------------------------
1515
1616{-# OPTIONS_GHC -fno-warn-orphans #-}
17−{-# LANGUAGE FlexibleInstances, FlexibleContexts, MultiParamTypeClasses #-}
17+{-# LANGUAGE FlexibleInstances #-}
18+{-# LANGUAGE FlexibleContexts #-}
19+{-# LANGUAGE MultiParamTypeClasses #-}
1820
1921module Language.PureScript.TypeChecker.Unify (
2022 unifyTypes,
@@ -157,14 +159,14 @@ unifiesWith _ REmpty REmpty = True
157159unifiesWith e r1@(RCons _ _ _) r2@(RCons _ _ _) =
158160 let (s1, r1') = rowToList r1
159161 (s2, r2') = rowToList r2
160−
162+
161163 int = [ (t1, t2) | (name, t1) <- s1, (name', t2) <- s2, name == name' ]
162164 sd1 = [ (name, t1) | (name, t1) <- s1, name `notElem` map fst s2 ]
163165 sd2 = [ (name, t2) | (name, t2) <- s2, name `notElem` map fst s1 ]
164166 in all (\(t1, t2) -> unifiesWith e t1 t2) int && go sd1 r1' sd2 r2'
165167 where
166168 go :: [(String, Type)] -> Type -> [(String, Type)] -> Type -> Bool
167− go [] REmpty [] REmpty = True
169+ go [] REmpty [] REmpty = True
168170 go [] (TypeVar v1) [] (TypeVar v2) = v1 == v2
169171 go [] (Skolem _ s1 _) [] (Skolem _ s2 _) = s1 == s2
170172 go _ (TUnknown _) _ _ = True