<div dir="ltr"><div><div><div>True, but what if it's the other way around? What if OtherModule imports M? Your code in M would think there is no instance and behave accordingly, and when it comes to OtherModule there would be one, so, your compiled code would operate on incorrect assumption. Isn't it dangerous?<br><br></div>And what about instances that have context? What if module M contains something like<br><br></div><div>data T a = ...<br></div>instance OtherClass a => C (T a)<br><br></div>and later OtherModule adds<br><br>instance OtherClass a<br><br>?<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 11, 2016 at 10:55 AM, J. Stutterheim <span dir="ltr"><<a href="mailto:j.stutterheim@me.com" target="_blank">j.stutterheim@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yes, that's true, but suppose we have<br>
<br>
        module M where<br>
<br>
        import OtherModPossiblyWithInstance<br>
<br>
Then as far as I understand, the compiler will have processed OtherModPossiblyWithInstance already and the existence of class instances in OtherModPossiblyWithInstance should be know.<br>
<div class="HOEnZb"><div class="h5"><br>
> On 11 Nov 2016, at 10:07, MigMit <<a href="mailto:migmit@gmail.com">migmit@gmail.com</a>> wrote:<br>
><br>
> I'm no expert in GHC plugins, but isn't it true that class instances can be added in other modules? So that this information is simply not available when compiling one?<br>
><br>
>> On 11 Nov 2016, at 08:57, J. Stutterheim <<a href="mailto:j.stutterheim@me.com">j.stutterheim@me.com</a>> wrote:<br>
>><br>
>> Hi all,<br>
>><br>
>> I'm writing a core-to-core GHC plugin and have two questions:<br>
>><br>
>> - Given some t :: Type, how can I check whether there exists an instance of some type class C for t?<br>
>> - How can I check whether some type class C exists, and if so, how can I get a value c (presumably :: Class) of this class?<br>
>><br>
>> Thanks!<br>
>><br>
>> - Jurriën_______________________<wbr>________________________<br>
>> Haskell-Cafe mailing list<br>
>> To (un)subscribe, modify options or view archives go to:<br>
>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
>> Only members subscribed via the mailman list are allowed to post.<br>
><br>
<br>
</div></div></blockquote></div><br></div>