@@ -181,13 +181,14 @@ register variable =
181181
182182
183183{-# INLINE introduce #-}
184−introduce :: Variable -> Solver Variable
185−introduce variable =
184+introduce :: [Variable] -> Solver ()
185+introduce variables =
186186 {-# SCC elm_compiler_type_introduce #-}
187187 Solver $ \(SS env savedEnv (Pool maxRank inhabitants) mark errors) ->
188− do UF.modifyDescriptor variable $ \(Descriptor c _ m cp) -> Descriptor c maxRank m cp
189− let newPool = Pool maxRank (variable : inhabitants)
190− return ( variable, SS env savedEnv newPool mark errors )
188+ do let toMaxRank (Descriptor c _ m cp) = Descriptor c maxRank m cp
189+ mapM_ (\var -> UF.modifyDescriptor var toMaxRank) variables
190+ let newPool = Pool maxRank (variables ++ inhabitants)
191+ return ( (), SS env savedEnv newPool mark errors )
191192
192193
193194