<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">The problem is that to get Typeable (Foo 'Just), we need Typeable 'Just. However, the kind parameter for Typeable 'Just would be (forall a. a -> Maybe a), making the full constraint Typable (forall a. a -> Maybe a) 'Just. And saying that would be impredicative. In other contexts, 'Just *can* be Typeable, but it's 'Just invisibly instantiated at some monotype for `a`.</div><div class=""><br class=""></div><div class="">So I think that this boils down to impredicativity and that the implementation is doing the right thing here.</div><div class=""><br class=""></div><div class="">Richard</div><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 24, 2017, at 5:45 AM, David Feuer <<a href="mailto:david@well-typed.com" class="">david@well-typed.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class=""><div class=""><div class="">data Foo :: (forall a. a -> Maybe a) -> Type</div><div class=""><br class=""></div><div class="">Neither Foo nor Foo 'Just is Typeable. There seems to be a certain sense to excluding Foo proper, because it can't be decomposed with Fun. But why not Foo 'Just? Is there a fundamental reason, or is that largely an implementation artifact?</div><div class=""><br class=""></div><div id="composer_signature" class=""><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class=""><div style="font-size:85%;color:#575757" class="">David Feuer</div><div style="font-size:85%;color:#575757" class="">Well-Typed, LLP</div></div></div>_______________________________________________<br class="">ghc-devs mailing list<br class=""><a href="mailto:ghc-devs@haskell.org" class="">ghc-devs@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs<br class=""></div></blockquote></div><br class=""></body></html>