summaryrefslogtreecommitdiff
path: root/testsuite/tests/quantified-constraints/T15625a.hs
blob: ca049cb19da6023dbeda037aeb9386c47bf042e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# Language RankNTypes, ConstraintKinds, QuantifiedConstraints,
             PolyKinds, GADTs, MultiParamTypeClasses,
             DataKinds, FlexibleInstances #-}

module T15625a where

import Data.Kind

type Cat ob = ob -> ob -> Type

data KLEISLI (m :: Type -> Type) :: Cat (KL_kind m) where
  MkKLEISLI :: (a -> m b) -> KLEISLI(m) (KL a) (KL b)

data KL_kind (m :: Type -> Type) = KL Type

class    (a ~ KL xx) => AsKL a xx
instance (a ~ KL xx) => AsKL a xx

ekki__ :: Monad m => (forall xx. AsKL a xx) => KLEISLI m a a
ekki__ = MkKLEISLI undefined