on master help sign in
Make sure rigid type variables stay rigid in recursive definitions
af37341Evan Czaplicki
compiler/src/Type/Constrain/Expression.hs+1−1
@@ -668,7 +668,7 @@ recDefsHelp rtv defs bodyCon rigidInfo flexInfo =
668 recDefsHelp rtv otherDefs bodyCon
668 recDefsHelp rtv otherDefs bodyCon
669 ( Info
669 ( Info
670 { _vars = Map.foldr (:) rigidVars newRigids
670 { _vars = Map.foldr (:) rigidVars newRigids
671− , _cons = defCon : rigidCons
671+ , _cons = CLet (Map.elems newRigids) [] Map.empty defCon CTrue : rigidCons
672 , _headers = Map.insert name (A.At region tipe) rigidHeaders
672 , _headers = Map.insert name (A.At region tipe) rigidHeaders
673 }
673 }
674 )
674 )