Oh!  I&#39;d completely forgotten about this idea.  Looking at Data.LinearMap in vector-space, I see a comment about exactly this ambiguity, as well as the start of a new module that wraps a data type around the linear map representation.  I don&#39;t recall whether I got stuck or just distracted.<br>

<br><div class="gmail_quote">On Sat, Apr 17, 2010 at 3:46 AM, Roman Leshchinskiy <span dir="ltr">&lt;<a href="mailto:rl@cse.unsw.edu.au">rl@cse.unsw.edu.au</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="im">On 17/04/2010, at 11:00, Conal Elliott wrote:<br>
<br>
&gt; I&#39;m unsure now, but I think I tried making Basis a data type (not syn) and ran into the problem I mentioned above.  The Basis *synonyms* also have HasTrie instances, which is crucially important.  If we switch to (injective) data types, then we lose the HasTrie instances.  I&#39;d be okay with defining HasTrie instances (preferably via &quot;deriving&quot;) for the associated Basis data types, but I couldn&#39;t figure out how to.  Maybe it&#39;s not possible currently, or maybe I just didn&#39;t know how.<br>


<br>
</div>Could you perhaps make (:-*) a proper type rather than a synonym? That would help with the ambiguity.<br>
<font color="#888888"><br>
Roman<br>
<br>
<br>
</font></blockquote></div><br>