{-# LANGUAGE DerivingVia #-} module T where newtype OrdList1 a = OrdList1 [a] deriving (Functor, Foldable, Traversable) via [] newtype OrdList2 a = OrdList2 [a] deriving (Functor, Foldable, Traversable) via Maybe