blob: 07539e31836ae50e3aafc452eaf281a7572e751e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{-# LANGUAGE RankNTypes, QuantifiedConstraints, ConstraintKinds #-}
-- NB: disabling these if enabled:
{-# LANGUAGE NoUndecidableInstances, NoUndecidableSuperClasses #-}
module T15316 where
import Data.Proxy
{-
class Class a where
method :: a
subsume :: (Class a => Class b) => Proxy a -> Proxy b -> ((Class a => Class b) => r) -> r
subsume _ _ x = x
value :: Proxy a -> a
value p = subsume p p method
-}
subsume' :: Proxy c -> ((c => c) => r) -> r
subsume' _ x = x
|