mirror of
https://github.com/roc-lang/roc.git
synced 2024-11-14 07:29:02 +03:00
e1afd964c7
With fixpoint-fixing, we don't want to re-unify type variables that were just fixed, because doing so may change their shapes in ways that we explicitly just set them up not to be changed (as fixpoint-fixing clobbers type variable contents). However, this restriction need only apply when we re-unify two type variables that were both involved in the same fixpoint-fixing cycle. If we have a type variable T that was involved in fixpoint-fixing, and we unify it with U that wasn't, we know that the $U \notin \bar{T}$, where $\bar{T}$ is the recursive closure of T. In these cases, we do want to permit the usual in-band unification of $T \sim U$. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |