@@ -175,8 +175,8 @@ solveScheme region scheme =
175allDistinct :: A.Region -> [Variable] -> StateT TS.SolverState IO ()
175allDistinct :: A.Region -> [Variable] -> StateT TS.SolverState IO ()
176allDistinct region vars =
176allDistinct region vars =
177 do seen <- TS.uniqueMark
177 do seen <- TS.uniqueMark
178− let check var = do
178+ forM_ vars $ \var ->
179− desc <- liftIO $ UF.descriptor var
179+ do desc <- liftIO $ UF.descriptor var
180 case structure desc of
180 case structure desc of
181 Just _ -> TS.addError region (Just msg) var var
181 Just _ -> TS.addError region (Just msg) var var
182 where msg = "Cannot generalize something that is not a type variable."
182 where msg = "Cannot generalize something that is not a type variable."
@@ -187,7 +187,6 @@ allDistinct region vars =
187 in TS.addError region (Just msg) var var
187 in TS.addError region (Just msg) var var
188 else return ()
188 else return ()
189 liftIO $ UF.setDescriptor var (desc { mark = seen })
189 liftIO $ UF.setDescriptor var (desc { mark = seen })
193-- Check that a variable has rank == noRank, meaning that it can be generalized.
192-- Check that a variable has rank == noRank, meaning that it can be generalized.