Skip to content

-Wmissing-kind-signatures

Oleg Grenrus requested to merge phadej/ghc:warn-missing-kind-signatures into master

Fixes #19564 (closed)


An example

{-# LANGUAGE TypeFamilies #-}
module Foobar where

import Data.Kind (Type, Constraint)

type family Id x where
    Id Int = Int

type Id2 :: Type -> Type
type family Id2 x where
    Id2 Int = Int

type family Id3 (x :: Type) :: Type where
    Id3 Int = Int

type Alt :: (Type -> Type) -> Constraint
class Functor f => Alt f where
    (<!>) :: f a -> f a -> f a

class Alt f => Empty f where
    empty :: f a
_build_master/stage1/bin/ghc -c -Wmissing-kind-signatures Foobar.hs -fforce-recomp

Foobar.hs:6:1: warning: [-Wmissing-kind-signatures]
    Top-level tycon with no kind signature: type Id :: * -> *
  |
6 | type family Id x where
  | ^^^^^^^^^^^^^^^^

Foobar.hs:13:1: warning: [-Wmissing-kind-signatures]
    Top-level tycon with no kind signature: type Id3 :: * -> *
   |
13 | type family Id3 (x :: Type) :: Type where
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Foobar.hs:20:1: warning: [-Wmissing-kind-signatures]
    Top-level tycon with no kind signature:
      type Empty :: (* -> *) -> Constraint
   |
20 | class Alt f => Empty f where
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
_build_master/stage1/bin/ghc -c -Wmissing-kind-signatures Foobar.hs -fforce-recomp -XCUSKs

Foobar.hs:6:1: warning: [-Wmissing-kind-signatures]
    Top-level tycon with no kind signature: type Id :: * -> *
  |
6 | type family Id x where
  | ^^^^^^^^^^^^^^^^

Foobar.hs:20:1: warning: [-Wmissing-kind-signatures]
    Top-level tycon with no kind signature:
      type Empty :: (* -> *) -> Constraint
   |
20 | class Alt f => Empty f where
   | ^^^
Edited by Oleg Grenrus

Merge request reports