summaryrefslogtreecommitdiff
path: root/testsuite/tests/polykinds/T15787.hs
blob: fbe67f3356f3954c6673f8c0e41bd5e41cc12973 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE Haskell2010 #-}
{-# Language RankNTypes #-}
{-# Language TypeApplications #-}
{-# Language DataKinds        #-}
{-# Language PolyKinds        #-}
{-# Language GADTs            #-}
{-# Language TypeFamilies     #-}

import Data.Kind

class RĂ­ki (ob :: Type) where
 type Hom :: ob -> ob -> Type

data
  Kl_kind :: forall ob . (ob -> ob) -> ob -> Type where
  Kl      :: k -> Kl_kind (m :: ob -> ob) k

type family
  UnKl (kl :: Kl_kind m k) = (res :: k) where
  UnKl (Kl a) = a