<div dir="ltr">Hi guys,<div><br></div><div>Yep, we know about this and, I believe, the plan is to add custom rules to the constraint solver to solve `Typable n` constraints (where n is  a number or symbol).   Just for the record, the other design choice was to add instance `Typeable (n :: Symbol)`, but that conflicted with some of the polymorphic instances already present in the library, so we decided to go for the custom constraint solver rules.</div>
<div><br></div><div>This should not be hard to do, I just need to sit down and do it---my current priority has been to catch up the type-nats solver with HEAD and clean up things for merging.</div><div><br></div><div>-Iavor</div>
<div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 26, 2013 at 1:19 AM, José Pedro Magalhães <span dir="ltr">&lt;<a href="mailto:jpm@cs.uu.nl" target="_blank">jpm@cs.uu.nl</a>&gt;</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>Hi Nicolas,<br><br></div>It&#39;s not intentional, but Iavor is aware of this, and we want to change it.<br>
</div>I&#39;m CC-ing him as he might know more about what the current plan is.<br><br><br>

Cheers,<br>Pedro<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Aug 24, 2013 at 3:20 PM, Nicolas Trangez <span dir="ltr">&lt;<a href="mailto:nicolas@incubaid.com" target="_blank">nicolas@incubaid.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Cafe,<br>
<br>
I was playing around with TypeLits in combination with Typeable (using<br>
GHC 7.7.7.20130812 FWIW), but was surprised to find Symbols aren&#39;t<br>
Typeable, and as such the following doesn&#39;t work. Is this intentional,<br>
or am I missing something?<br>
<br>
Thanks,<br>
<br>
Nicolas<br>
<br>
{-# LANGUAGE DataKinds,<br>
             KindSignatures,<br>
             DeriveFunctor,<br>
             DeriveDataTypeable #-}<br>
module Main where<br>
<br>
import Data.Typeable<br>
import GHC.TypeLits<br>
<br>
data NoSymbol n a b = NoSymbol a b<br>
  deriving (Typeable)<br>
<br>
data WithSymbol (n :: Symbol) a b = WithSymbol a b<br>
  deriving (Typeable)<br>
<br>
data Sym<br>
  deriving (Typeable)<br>
<br>
main :: IO ()<br>
main = do<br>
    print $ typeOf (undefined :: NoSymbol Sym Int Int)<br>
<br>
    let d = undefined :: WithSymbol &quot;sym&quot; Int Int<br>
    {-<br>
    print $ typeOf d<br>
<br>
    No instance for (Typeable Symbol &quot;sym&quot;)<br>
      arising from a use of ‛typeOf’<br>
    -}<br>
<br>
    return ()<br>
<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>