module Main where

data A
  deriving (Show, Eq, Ord)

newtype B = B Int
  deriving newtype (Num)
  deriving stock (Show, Eq, Generic)
  deriving (Semigroup, Monoid) via (Generically B)
  deriving stock (Ord, Generic)
  deriving (ToJSON)

data C
  deriving 
    (Show
    , Eq
    -- A comment that will end up in an odd place
    , Ord)
