blob: e824f7cec88b9436011ca6eedf8dcbcb40d578dc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
{-# LANGUAGE RankNTypes, TypeFamilies, PolyKinds, FunctionalDependencies #-}
module T16946 where
import Data.Kind
class CatMonad (c :: k -> k -> Type) (m :: forall (x :: k) (y :: k). c x y -> Type -> Type) | c -> m where
type Id c :: c x x
xpure :: a -> m (Id c) a
boom :: forall k (c :: k -> k -> Type) (m :: forall (x :: k) (y :: k). c x y -> Type -> Type) a. CatMonad c m => a -> m (Id c) a
boom = xpure
|