{-# LANGUAGE DerivingVia #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} module T15831 where import Data.Functor.Const (Const(..)) import GHC.Exts (Any) newtype Age = MkAge Int deriving Eq via Const Int Any deriving Ord via Const Int (Any :: k) deriving Read via forall k. Const Int (Any :: k) deriving Show via Const Int a deriving Enum via Const Int (a :: k) deriving Bounded via forall a. Const Int a deriving Num via forall k (a :: k). Const Int a newtype Age2 = MkAge2 Int deriving via Const Int Any instance Eq Age2 deriving via Const Int (Any :: k) instance Ord Age2 deriving via forall k. Const Int (Any :: k) instance Read Age2 deriving via Const Int a instance Show Age2 deriving via Const Int (a :: k) instance Enum Age2 deriving via forall a. Const Int a instance Bounded Age2 deriving via forall k (a :: k). Const Int a instance Num Age2