@@ -524,10 +524,13 @@ data Options = Options
524524 , unwrapUnaryRecords :: Bool
525525 -- ^ Hide the field name when a record constructor has only one
526526 -- field, like a newtype.
527+ , tagSingleConstructors :: Bool
528+ -- ^ Encode types with a single constructor as sums,
529+ -- so that `allNullaryToStringTag` and `sumEncoding` apply.
527530 }
528531
529532instance Show Options where
530− show (Options f c a o s u) =
533+ show (Options f c a o s u t) =
531534 "Options {"
532535 ++ intercalate ", "
533536 [ "fieldLabelModifier =~ " ++ show (f "exampleField")
@@ -536,6 +539,7 @@ instance Show Options where
536539 , "omitNothingFields = " ++ show o
537540 , "sumEncoding = " ++ show s
538541 , "unwrapUnaryRecords = " ++ show u
542+ , "tagSingleConstructors = " ++ show t
539543 ]
540544 ++ "}"
541545
@@ -589,6 +593,7 @@ data SumEncoding =
589593-- , 'omitNothingFields' = False
590594-- , 'sumEncoding' = 'defaultTaggedObject'
591595-- , 'unwrapUnaryRecords' = False
596+-- , 'tagSingleConstructors' = False
592597-- }
593598-- @
594599defaultOptions :: Options
@@ -599,6 +604,7 @@ defaultOptions = Options
599604 , omitNothingFields = False
600605 , sumEncoding = defaultTaggedObject
601606 , unwrapUnaryRecords = False
607+ , tagSingleConstructors = False
602608 }
603609
604610-- | Default 'TaggedObject' 'SumEncoding' options: