summaryrefslogtreecommitdiff
path: root/testsuite/tests/quantified-constraints/T22216c.hs
blob: 262522832a47f11b21b8299e4ff2f6b338b2016e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE UndecidableInstances #-}

module T22216c where

import Prelude (Bool, Ordering)

class Eq a where
class Eq a => Ord a where
class (forall a. Eq a => Eq (f a)) => Eq1 f where

class (Eq1 f, forall a. Ord a => Ord (f a)) => Ord1 f where
  liftCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering

instance Eq  (T f a)
instance Ord (T f a)
instance Eq1 (T f)

newtype T f a = MkT (f a)
  deriving Ord1