@@ -168,7 +168,7 @@ actuallyUnify span variable1 variable2 = do
169 (Record1 fields1 ext1, Record1 fields2 ext2) ->
169 (Record1 fields1 ext1, Record1 fields2 ext2) ->
170 do sequence . concat . Map.elems $ Map.intersectionWith (zipWith unify') fields1 fields2
170 do sequence . concat . Map.elems $ Map.intersectionWith (zipWith unify') fields1 fields2
171− let mkRecord fs ext = liftIO . structuredVar $ Record1 fs ext
171+ let mkRecord fs ext = fresh . Just $ Record1 fs ext
172 case (Map.null fields1', Map.null fields2') of
172 case (Map.null fields1', Map.null fields2') of
173 (True , True ) -> unify' ext1 ext2
173 (True , True ) -> unify' ext1 ext2
174 (True , False) -> do
174 (True , False) -> do
@@ -178,8 +178,8 @@ actuallyUnify span variable1 variable2 = do
178 record1' <- mkRecord fields1' ext1
178 record1' <- mkRecord fields1' ext1
179 unify' record1' ext2
179 unify' record1' ext2
180 (False, False) -> do
180 (False, False) -> do
181− record1' <- mkRecord fields1' =<< liftIO (var Flexible)
181+ record1' <- mkRecord fields1' =<< fresh Nothing
182− record2' <- mkRecord fields2' =<< liftIO (var Flexible)
182+ record2' <- mkRecord fields2' =<< fresh Nothing
183 unify' record1' ext2
183 unify' record1' ext2
184 unify' ext1 record2'
184 unify' ext1 record2'