:set -XKindSignatures -XRank2Types -XConstraintKinds -XAllowAmbiguousTypes import Data.Kind class Defer (p :: Constraint) where defer :: (p => r) -> r instance Defer () where defer x = x :i Defer