Coherence and orphan instance rules
Summary
The article discusses coherence in typeclass-based languages and the orphan instance rules that govern where instances can be defined. It uses Haskell and Rust RFC references to illustrate how coherence is preserved (or not) across module boundaries, and why orphan rules exist to enable modular, composable libraries. The post also notes gaps in formal treatments and suggests opportunities for formalizing instance resolution and coherence.