I have a draft paper some of you might enjoy, called &quot;Denotational design with type class morphisms&quot;.<br><br>Abstract:<br><br>&nbsp;&nbsp;&nbsp; Type classes provide a mechanism for varied implementations of standard<br>&nbsp;&nbsp;&nbsp; interfaces. Many of these interfaces are founded in mathematical<br>
&nbsp;&nbsp;&nbsp; tradition and so have regularity not only of *types* but also of<br>&nbsp;&nbsp;&nbsp; *properties* (laws) that must hold. Types and properties give strong<br>&nbsp;&nbsp;&nbsp; guidance to the library implementor, while leaving freedom as well. Some<br>
&nbsp;&nbsp;&nbsp; of the remaining freedom is in *how* the implementation works, and some<br>&nbsp;&nbsp;&nbsp; is in *what* it accomplishes.<br><br>&nbsp;&nbsp;&nbsp; To give additional guidance to the *what*, without impinging on the<br>&nbsp;&nbsp;&nbsp; *how*, this paper proposes a principle of *type class morphisms* (TCMs),<br>
&nbsp;&nbsp;&nbsp; which further refines the compositional style of denotational<br>&nbsp;&nbsp;&nbsp; semantics. The TCM idea is simply that *the instance&#39;s meaning is the<br>&nbsp;&nbsp;&nbsp; meaning&#39;s instance*. This principle determines the meaning of each type<br>
&nbsp;&nbsp;&nbsp; class instance, and hence defines correctness of implementation. In some<br>&nbsp;&nbsp;&nbsp; cases, it also provides a systematic guide to implementation, and in<br>&nbsp;&nbsp;&nbsp; some cases, valuable design feedback.<br><br>&nbsp;&nbsp;&nbsp; The paper is illustrated with several examples of type, meanings, and<br>
&nbsp;&nbsp;&nbsp; morphisms.<br><br>You&#39;ll find the paper at <a href="http://conal.net/papers/type-class-morphisms/">http://conal.net/papers/type-class-morphisms/</a> .&nbsp; <br><br>I&#39;d sure appreciate feedback on it, especially if in time for the *March 2* ICFP deadline.&nbsp; Pointers to related work would be particularly appreciated, as well as what&#39;s unclear and what could be cut.&nbsp; This draft is an entire page over the limit, so I&#39;ll have to do some trimming before submitting.<br>
<br>Enjoy, and thanks!<br><br>&nbsp;&nbsp; - Conal<br>