:kind! does not work under type constructors
Say I have the following:
{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies #-}
module Scratch where
data Nat = Zero | Succ Nat
type family a + b where
Zero + a = a
(Succ n) + m = Succ (n + m)
I load this into ghci. See what happens next:
GHCi, version 7.8.0.20140228: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling Scratch ( Scratch.hs, interpreted )
Ok, modules loaded: Scratch.
*Scratch> :kind! Zero + Succ Zero
Zero + Succ Zero :: Nat
= 'Succ 'Zero
*Scratch> :kind! Succ (Zero + Zero)
Succ (Zero + Zero) :: Nat
= 'Succ ('Zero + 'Zero)
Note the last line. It doesn't reduce under the Succ
!
I will fix shortly.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.1-rc2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |