@@ -524,10 +524,13 @@ data Options = Options
524 , unwrapUnaryRecords :: Bool
524 , unwrapUnaryRecords :: Bool
525 -- ^ Hide the field name when a record constructor has only one
525 -- ^ Hide the field name when a record constructor has only one
526 -- field, like a newtype.
526 -- field, like a newtype.
527+ , tagSingleConstructors :: Bool
528+ -- ^ Encode types with a single constructor as sums,
529+ -- so that `allNullaryToStringTag` and `sumEncoding` apply.
529instance Show Options where
532instance Show Options where
530− show (Options f c a o s u) =
533+ show (Options f c a o s u t) =
531 "Options {"
534 "Options {"
532 ++ intercalate ", "
535 ++ intercalate ", "
533 [ "fieldLabelModifier =~ " ++ show (f "exampleField")
536 [ "fieldLabelModifier =~ " ++ show (f "exampleField")
@@ -536,6 +539,7 @@ instance Show Options where
536 , "omitNothingFields = " ++ show o
539 , "omitNothingFields = " ++ show o
537 , "sumEncoding = " ++ show s
540 , "sumEncoding = " ++ show s
538 , "unwrapUnaryRecords = " ++ show u
541 , "unwrapUnaryRecords = " ++ show u
542+ , "tagSingleConstructors = " ++ show t
@@ -589,6 +593,7 @@ data SumEncoding =
589-- , 'omitNothingFields' = False
593-- , 'omitNothingFields' = False
590-- , 'sumEncoding' = 'defaultTaggedObject'
594-- , 'sumEncoding' = 'defaultTaggedObject'
591-- , 'unwrapUnaryRecords' = False
595-- , 'unwrapUnaryRecords' = False
596+-- , 'tagSingleConstructors' = False
594defaultOptions :: Options
599defaultOptions :: Options
@@ -599,6 +604,7 @@ defaultOptions = Options
599 , omitNothingFields = False
604 , omitNothingFields = False
600 , sumEncoding = defaultTaggedObject
605 , sumEncoding = defaultTaggedObject
601 , unwrapUnaryRecords = False
606 , unwrapUnaryRecords = False
607+ , tagSingleConstructors = False
604-- | Default 'TaggedObject' 'SumEncoding' options:
610-- | Default 'TaggedObject' 'SumEncoding' options: