diff options
Diffstat (limited to 'testsuite/tests/polykinds/T7908.hs')
-rw-r--r-- | testsuite/tests/polykinds/T7908.hs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/testsuite/tests/polykinds/T7908.hs b/testsuite/tests/polykinds/T7908.hs index 5895bbeddf..14178b204e 100644 --- a/testsuite/tests/polykinds/T7908.hs +++ b/testsuite/tests/polykinds/T7908.hs @@ -2,7 +2,9 @@ module T7908 where -class Monad' (m :: (k -> *) -> *) where +import Data.Kind (Type) + +class Monad' (m :: (k -> Type) -> Type) where return' :: c a -> m c (>>>=) :: m c -> (forall a . c a -> m d) -> m d (>>-) :: m c -> (forall a . c a -> d) -> d @@ -14,15 +16,17 @@ data Nat' (n :: Nat) where Z :: Nat' Z' S :: Nat' n -> Nat' (S' n) -data Hidden :: (k -> *) -> * where +data Hidden :: (k -> Type) -> Type where Hide :: m a -> Hidden m instance Monad' Hidden where - return' :: forall (c :: k -> *) (a :: k) . c a -> Hidden c + return' :: forall k (c :: k -> Type) (a :: k) . c a -> Hidden c return' = Hide - (>>>=) :: forall (c :: k -> *) (d :: k -> *) . Hidden c -> (forall (a :: k) . c a -> Hidden d) -> Hidden d + (>>>=) :: forall k (c :: k -> Type) (d :: k -> Type) . + Hidden c -> (forall (a :: k) . c a -> Hidden d) -> Hidden d Hide a >>>= f = f a - (>>-) :: forall (c :: k -> *) d . Hidden c -> (forall (a :: k) . c a -> d) -> d + (>>-) :: forall k (c :: k -> Type) d . + Hidden c -> (forall (a :: k) . c a -> d) -> d Hide a >>- f = f a |