lib: Make fields of Amount, AmountPrice, AmountStyle, and DigitGroupStyle strict.
This commit is contained in:
		
							parent
							
								
									2ada289e28
								
							
						
					
					
						commit
						81b778a389
					
				| @ -178,16 +178,16 @@ instance ToMarkup Quantity | |||||||
| -- | An amount's per-unit or total cost/selling price in another | -- | An amount's per-unit or total cost/selling price in another | ||||||
| -- commodity, as recorded in the journal entry eg with @ or @@. | -- commodity, as recorded in the journal entry eg with @ or @@. | ||||||
| -- Docs call this "transaction price". The amount is always positive. | -- Docs call this "transaction price". The amount is always positive. | ||||||
| data AmountPrice = UnitPrice Amount | TotalPrice Amount | data AmountPrice = UnitPrice !Amount | TotalPrice !Amount | ||||||
|   deriving (Eq,Ord,Generic,Show) |   deriving (Eq,Ord,Generic,Show) | ||||||
| 
 | 
 | ||||||
| -- | Display style for an amount. | -- | Display style for an amount. | ||||||
| data AmountStyle = AmountStyle { | data AmountStyle = AmountStyle { | ||||||
|       ascommodityside   :: Side,                 -- ^ does the symbol appear on the left or the right ? |       ascommodityside   :: !Side,                   -- ^ does the symbol appear on the left or the right ? | ||||||
|       ascommodityspaced :: Bool,                 -- ^ space between symbol and quantity ? |       ascommodityspaced :: !Bool,                   -- ^ space between symbol and quantity ? | ||||||
|       asprecision       :: !AmountPrecision,        -- ^ number of digits displayed after the decimal point |       asprecision       :: !AmountPrecision,        -- ^ number of digits displayed after the decimal point | ||||||
|       asdecimalpoint    :: Maybe Char,           -- ^ character used as decimal point: period or comma. Nothing means "unspecified, use default" |       asdecimalpoint    :: !(Maybe Char),           -- ^ character used as decimal point: period or comma. Nothing means "unspecified, use default" | ||||||
|       asdigitgroups     :: Maybe DigitGroupStyle -- ^ style for displaying digit groups, if any |       asdigitgroups     :: !(Maybe DigitGroupStyle) -- ^ style for displaying digit groups, if any | ||||||
| } deriving (Eq,Ord,Read,Generic) | } deriving (Eq,Ord,Read,Generic) | ||||||
| 
 | 
 | ||||||
| instance Show AmountStyle where | instance Show AmountStyle where | ||||||
| @ -211,7 +211,7 @@ data AmountPrecision = Precision !Word8 | NaturalPrecision deriving (Eq,Ord,Read | |||||||
| -- point), and the size of each group, starting with the one nearest | -- point), and the size of each group, starting with the one nearest | ||||||
| -- the decimal point. The last group size is assumed to repeat. Eg, | -- the decimal point. The last group size is assumed to repeat. Eg, | ||||||
| -- comma between thousands is DigitGroups ',' [3]. | -- comma between thousands is DigitGroups ',' [3]. | ||||||
| data DigitGroupStyle = DigitGroups Char [Word8] | data DigitGroupStyle = DigitGroups !Char ![Word8] | ||||||
|   deriving (Eq,Ord,Read,Show,Generic) |   deriving (Eq,Ord,Read,Show,Generic) | ||||||
| 
 | 
 | ||||||
| type CommoditySymbol = Text | type CommoditySymbol = Text | ||||||
| @ -222,12 +222,12 @@ data Commodity = Commodity { | |||||||
|   } deriving (Show,Eq,Generic) --,Ord) |   } deriving (Show,Eq,Generic) --,Ord) | ||||||
| 
 | 
 | ||||||
| data Amount = Amount { | data Amount = Amount { | ||||||
|       acommodity  :: CommoditySymbol,   -- commodity symbol, or special value "AUTO" |       acommodity  :: !CommoditySymbol,     -- commodity symbol, or special value "AUTO" | ||||||
|       aquantity   :: Quantity,          -- numeric quantity, or zero in case of "AUTO" |       aquantity   :: !Quantity,            -- numeric quantity, or zero in case of "AUTO" | ||||||
|       aismultiplier :: Bool,            -- ^ kludge: a flag marking this amount and posting as a multiplier |       aismultiplier :: !Bool,              -- ^ kludge: a flag marking this amount and posting as a multiplier | ||||||
|                                            --   in a TMPostingRule. In a regular Posting, should always be false. |                                            --   in a TMPostingRule. In a regular Posting, should always be false. | ||||||
|       astyle      :: AmountStyle, |       astyle      :: !AmountStyle, | ||||||
|       aprice      :: Maybe AmountPrice  -- ^ the (fixed, transaction-specific) price for this amount, if any |       aprice      :: !(Maybe AmountPrice)  -- ^ the (fixed, transaction-specific) price for this amount, if any | ||||||
|     } deriving (Eq,Ord,Generic,Show) |     } deriving (Eq,Ord,Generic,Show) | ||||||
| 
 | 
 | ||||||
| newtype MixedAmount = Mixed [Amount] deriving (Eq,Ord,Generic,Show) | newtype MixedAmount = Mixed [Amount] deriving (Eq,Ord,Generic,Show) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user