<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div>I don't see why Typeable (Foo 'Just) requires that. I'd expect to get back a TrTyCon, not a TrApp. Some modifications to the structure of TrTyCon might be required.</div><div><br></div><div><br></div><div><br></div><div id="composer_signature"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><div style="font-size:85%;color:#575757">David Feuer</div><div style="font-size:85%;color:#575757">Well-Typed, LLP</div></div><div><br></div><div style="font-size:100%;color:#000000"><!-- originalMessage --><div>-------- Original message --------</div><div>From: Ryan Scott <ryan.gl.scott@gmail.com> </div><div>Date: 9/24/17  10:08 AM  (GMT-05:00) </div><div>To: ghc-devs@haskell.org </div><div>Subject: Re: Why isn't this Typeable? </div><div><br></div></div>Trying to conclude Typeable Foo (or, if expanded with<br>-fprint-explicit-kinds, Typeable ((forall a. a -> Maybe a) -> Type)<br>Foo) is beyond GHC's capabilities at the moment, as that would require<br>impredicative polymorphism. This problem has arose in other contexts<br>too—see Trac #13895 [1] for one example.<br><br>I don't think you can conclude Typeable (Foo 'Just) either, since that<br>requires concluding both Typeable Foo and Typeable 'Just, so you<br>ultimately run into the same problem.<br><br>While there an in-the-works plan to allow a limited form of<br>impredicativity through explicit use of visible type application [2],<br>my fear is that that wouldn't be enough to address the problem you've<br>encountered, since there's no way to visibly apply @((forall a. a -><br>Maybe a) -> Type) to Typeable at the moment. To accomplish this, you<br>would need visible kind application [3].<br><br>Ryan S.<br>-----<br>[1] https://ghc.haskell.org/trac/ghc/ticket/13895<br>[2] https://ghc.haskell.org/trac/ghc/ticket/11319#comment:11<br>[3] https://ghc.haskell.org/trac/ghc/ticket/12045<br>_______________________________________________<br>ghc-devs mailing list<br>ghc-devs@haskell.org<br>http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs<br></body></html>