[GHC] #1311: newtypes of unboxed types disallowed - documentation bug and/or feature request

GHC ghc-devs at haskell.org
Mon Dec 21 20:20:53 UTC 2015


#1311: newtypes of unboxed types disallowed - documentation bug and/or feature
request
-------------------------------------+-------------------------------------
        Reporter:  Isaac Dupree      |                Owner:  osa1
            Type:  feature request   |               Status:  new
        Priority:  low               |            Milestone:  ⊥
       Component:  Compiler          |              Version:  7.7
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 I think this will be quite easy, actually.

 You're hunting in all the right places. `getInitialKind` does indeed
 assume a result of kind `*`. (A kind sig ''can'' be provided via `newtype
 Blah :: * -> * where ...` as if you're defining a GADT. That is, GADT
 syntax works with newtypes just fine.) But I don't think anyone gets hurt
 if you assume that the return kind is `TYPE v` for a fresh levity
 metavariable `v`. You may need to unify that result kind with `*` in the
 datatype case somewhere. You'd need to check that the result kind of the
 newtype matches the kind of the representation type. I think this would
 happen in `kcConDecl`. One annoying bit is that we have no surface syntax
 (other than `TYPE 'Unlifted`) for `#`. I suppose you could add `type
 UnliftedType = TYPE 'Unlifted` in `Data.Kind` if you felt it worthwhile.

 I really don't think it would be much harder than this. Go for it! :)

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/1311#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list