Allows for checking types during equality and more consistent behavior.
Context
This is a mess, I keep adding and removing this. The advantage of the wrapper is that it enforces on the type level that some constructors have some behavior, a lot of times this gets in the way or makes it a hard to enforce relationship.
But recently it seems like this is a worth it change, as there is a space to say "every term has this property". So here it goes again.
Goals
Allows for checking types during equality and more consistent behavior.
Context
This is a mess, I keep adding and removing this. The advantage of the wrapper is that it enforces on the type level that some constructors have some behavior, a lot of times this gets in the way or makes it a hard to enforce relationship.
But recently it seems like this is a worth it change, as there is a space to say "every term has this property". So here it goes again.
Related
199