<div dir="ltr">If we have associated type synonyms, is there still reason to have associated data types?<br>
<br>
For example, we can replace:<br>
<br>
class C b where<br>
 &nbsp;data D b<br>
 &nbsp;...<br>
<br>
instance C Int where<br>
 &nbsp;data D Int = D | E<br>
<br>
with:<br>
<br>
class C b where<br>
 &nbsp;type D b<br>
 &nbsp;...<br>
<br>
data DInt = D | E<br>
instance C Int where<br>
 &nbsp;type D Int = DInt<br>
<br>
<br>
Or perhaps allow, for convenience, this form (which would desugar to the above):<br>
<br>
class C b where<br>
 &nbsp;type D b<br>
 &nbsp;...<br>
<br>
instance C Int where<br>
 &nbsp;data D Int = D | E</div>