<div dir="ltr"><div>Bump -- is this feasible? It would be extremely helpful for an EDSL of mine.<br><br></div>Tom<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 30, 2016 at 5:23 AM, Tom Murphy <span dir="ltr"><<a href="mailto:amindfv@gmail.com" target="_blank">amindfv@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>I've got a case in a library I'm working on where having -XExtendedDefaultRules with MPTCs would be very, very helpful. Is it possible?<br><br></div>I.e., we can now write:<br><br>```<br>{-# LANGUAGE ExtendedDefaultRules #-}<br><br>data AB = A | B Double deriving (Show)<br><br>class Foo x where<br>   foo :: x -> AB<br><br>instance Foo Double where<br>   foo = B<br><br>main = print $ foo 5<br>```<br><br></div>And -XExtendedDefaultRules makes sure we don't need to write "5 :: Double"<br><div><br><div><div><div><br>If, though, I want 'Foo' to take another parameter (here, a :: [Symbol]), it falls apart:<br><div><br>```<br>{-# LANGUAGE DataKinds #-}<br>{-# LANGUAGE ExtendedDefaultRules #-}<br>{-# LANGUAGE KindSignatures #-}<br>{-# LANGUAGE MultiParamTypeClasses #-}<br><br>import GHC.TypeLits<br><br>data AB = A | B Double deriving (Show)<br><br>class Foo x (a :: [Symbol]) where<br>   foo :: x -> AB<br><br>instance Foo Double a where<br>   foo = B<br><br>main = print $ foo 5<br>```<br><br></div><div>Is there a reason MPTCs can't support ExtendedDefaultRules?<br><br></div><div>Thanks!<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>Tom<br></div><div><br><br><br><br></div></font></span></div></div></div></div></div>
</blockquote></div><br></div>