on master help sign in
Fix problem where added type variable names were trashed
912d652Evan Czaplicki
src/Type/Type.hs+4−3
@@ -266,14 +266,15 @@ toSrcType variable =
266variableToSrcType :: Variable -> StateT NameState IO T.Canonical
266variableToSrcType :: Variable -> StateT NameState IO T.Canonical
267variableToSrcType variable =
267variableToSrcType variable =
268 do descriptor <- liftIO $ UF.descriptor variable
268 do descriptor <- liftIO $ UF.descriptor variable
269− if _mark descriptor == occursMark
269+ let mark = _mark descriptor
270+ if mark == occursMark
270 then
271 then
271 return (T.Var "∞")
272 return (T.Var "∞")
272
273
273 else
274 else
274− do liftIO $ UF.setDescriptor variable (descriptor { _mark = occursMark })
275+ do liftIO $ UF.modifyDescriptor variable (\desc -> desc { _mark = occursMark })
275 srcType <- contentToSrcType variable (_content descriptor)
276 srcType <- contentToSrcType variable (_content descriptor)
276− liftIO $ UF.setDescriptor variable descriptor
277+ liftIO $ UF.modifyDescriptor variable (\desc -> desc { _mark = mark })
277 return srcType
278 return srcType
278
279
279
280