lib: Remove unnecessary NFData instances.

This commit is contained in:
Stephen Morgan 2020-08-31 15:25:05 +10:00
parent af31d6e140
commit 2cd7877c46
4 changed files with 2 additions and 62 deletions

View File

@ -28,7 +28,6 @@ module Hledger.Data.Types
where
import GHC.Generics (Generic)
import Control.DeepSeq (NFData)
import Data.Decimal
import Data.Default
import Data.Functor (($>))
@ -79,8 +78,6 @@ data DateSpan = DateSpan (Maybe Day) (Maybe Day) deriving (Eq,Ord,Generic)
instance Default DateSpan where def = DateSpan Nothing Nothing
instance NFData DateSpan
-- synonyms for various date-related scalars
type Year = Integer
type Month = Int -- 1-12
@ -135,8 +132,6 @@ data Interval =
instance Default Interval where def = NoInterval
instance NFData Interval
type AccountName = Text
data AccountType =
@ -148,8 +143,6 @@ data AccountType =
| Cash -- ^ a subtype of Asset - liquid assets to show in cashflow report
deriving (Show,Eq,Ord,Generic)
instance NFData AccountType
-- not worth the trouble, letters defined in accountdirectivep for now
--instance Read AccountType
-- where
@ -164,12 +157,8 @@ data AccountAlias = BasicAlias AccountName AccountName
| RegexAlias Regexp Replacement
deriving (Eq, Read, Show, Ord, Generic)
-- instance NFData AccountAlias
data Side = L | R deriving (Eq,Show,Read,Ord,Generic)
instance NFData Side
-- | The basic numeric type used in amounts.
type Quantity = Decimal
-- The following is for hledger-web, and requires blaze-markup.
@ -184,8 +173,6 @@ instance ToMarkup Quantity
data AmountPrice = UnitPrice Amount | TotalPrice Amount
deriving (Eq,Ord,Generic,Show)
instance NFData AmountPrice
-- | Display style for an amount.
data AmountStyle = AmountStyle {
ascommodityside :: Side, -- ^ does the symbol appear on the left or the right ?
@ -195,8 +182,6 @@ data AmountStyle = AmountStyle {
asdigitgroups :: Maybe DigitGroupStyle -- ^ style for displaying digit groups, if any
} deriving (Eq,Ord,Read,Generic)
instance NFData AmountStyle
instance Show AmountStyle where
show AmountStyle{..} =
printf "AmountStylePP \"%s %s %s %s %s..\""
@ -208,8 +193,6 @@ instance Show AmountStyle where
data AmountPrecision = Precision !Word8 | NaturalPrecision deriving (Eq,Ord,Read,Show,Generic)
instance NFData AmountPrecision
-- | A style for displaying digit groups in the integer part of a
-- floating point number. It consists of the character used to
-- separate groups (comma or period, whichever is not used as decimal
@ -219,8 +202,6 @@ instance NFData AmountPrecision
data DigitGroupStyle = DigitGroups Char [Word8]
deriving (Eq,Ord,Read,Show,Generic)
instance NFData DigitGroupStyle
type CommoditySymbol = Text
data Commodity = Commodity {
@ -228,8 +209,6 @@ data Commodity = Commodity {
cformat :: Maybe AmountStyle
} deriving (Show,Eq,Generic) --,Ord)
instance NFData Commodity
data Amount = Amount {
acommodity :: CommoditySymbol, -- commodity symbol, or special value "AUTO"
aquantity :: Quantity, -- numeric quantity, or zero in case of "AUTO"
@ -239,17 +218,11 @@ data Amount = Amount {
aprice :: Maybe AmountPrice -- ^ the (fixed, transaction-specific) price for this amount, if any
} deriving (Eq,Ord,Generic,Show)
instance NFData Amount
newtype MixedAmount = Mixed [Amount] deriving (Eq,Ord,Generic,Show)
instance NFData MixedAmount
data PostingType = RegularPosting | VirtualPosting | BalancedVirtualPosting
deriving (Eq,Show,Generic)
instance NFData PostingType
type TagName = Text
type TagValue = Text
type Tag = (TagName, TagValue) -- ^ A tag name and (possibly empty) value.
@ -260,8 +233,6 @@ type DateTag = (TagName, Day)
data Status = Unmarked | Pending | Cleared
deriving (Eq,Ord,Bounded,Enum,Generic)
instance NFData Status
instance Show Status where -- custom show.. bad idea.. don't do it..
show Unmarked = ""
show Pending = "!"
@ -311,8 +282,6 @@ data BalanceAssertion = BalanceAssertion {
baposition :: GenericSourcePos -- ^ the assertion's file position, for error reporting
} deriving (Eq,Generic,Show)
instance NFData BalanceAssertion
data Posting = Posting {
pdate :: Maybe Day, -- ^ this posting's date, if different from the transaction's
pdate2 :: Maybe Day, -- ^ this posting's secondary date, if different from the transaction's
@ -332,8 +301,6 @@ data Posting = Posting {
-- untransformed posting (which will have Nothing in this field).
} deriving (Generic)
instance NFData Posting
-- The equality test for postings ignores the parent transaction's
-- identity, to avoid recurring ad infinitum.
-- XXX could check that it's Just or Nothing.
@ -362,8 +329,6 @@ data GenericSourcePos = GenericSourcePos FilePath Int Int -- ^ file path, 1-b
| JournalSourcePos FilePath (Int, Int) -- ^ file path, inclusive range of 1-based line numbers (first, last).
deriving (Eq, Read, Show, Ord, Generic)
instance NFData GenericSourcePos
--{-# ANN Transaction "HLint: ignore" #-}
-- Ambiguous type variable p0 arising from an annotation
-- prevents the constraint (Data p0) from being solved.
@ -382,8 +347,6 @@ data Transaction = Transaction {
tpostings :: [Posting] -- ^ this transaction's postings
} deriving (Eq,Generic,Show)
instance NFData Transaction
-- | A transaction modifier rule. This has a query which matches postings
-- in the journal, and a list of transformations to apply to those
-- postings or their transactions. Currently there is one kind of transformation:
@ -394,8 +357,6 @@ data TransactionModifier = TransactionModifier {
tmpostingrules :: [TMPostingRule]
} deriving (Eq,Generic,Show)
instance NFData TransactionModifier
nulltransactionmodifier = TransactionModifier{
tmquerytxt = ""
,tmpostingrules = []
@ -433,12 +394,8 @@ nullperiodictransaction = PeriodicTransaction{
,ptpostings = []
}
instance NFData PeriodicTransaction
data TimeclockCode = SetBalance | SetRequiredHours | In | Out | FinalOut deriving (Eq,Ord,Generic)
instance NFData TimeclockCode
data TimeclockEntry = TimeclockEntry {
tlsourcepos :: GenericSourcePos,
tlcode :: TimeclockCode,
@ -447,8 +404,6 @@ data TimeclockEntry = TimeclockEntry {
tldescription :: Text
} deriving (Eq,Ord,Generic)
instance NFData TimeclockEntry
-- | A market price declaration made by the journal format's P directive.
-- It declares two things: a historical exchange rate between two commodities,
-- and an amount display style for the second commodity.
@ -459,8 +414,6 @@ data PriceDirective = PriceDirective {
} deriving (Eq,Ord,Generic,Show)
-- Show instance derived in Amount.hs (XXX why ?)
instance NFData PriceDirective
-- | A historical market price (exchange rate) from one commodity to another.
-- A more concise form of a PriceDirective, without the amount display info.
data MarketPrice = MarketPrice {
@ -471,8 +424,6 @@ data MarketPrice = MarketPrice {
} deriving (Eq,Ord,Generic)
-- Show instance derived in Amount.hs (XXX why ?)
instance NFData MarketPrice
-- additional valuation-related types in Valuation.hs
-- | A Journal, containing transactions and various other things.
@ -512,8 +463,6 @@ data Journal = Journal {
} deriving (Eq, Generic)
deriving instance Generic ClockTime
instance NFData ClockTime
-- instance NFData Journal
-- | A journal in the process of being parsed, not yet finalised.
-- The data is partial, and list fields are in reverse order.
@ -532,8 +481,6 @@ data AccountDeclarationInfo = AccountDeclarationInfo {
-- relative to other account declarations, during parsing (1..)
} deriving (Eq,Show,Generic)
instance NFData AccountDeclarationInfo
nullaccountdeclarationinfo = AccountDeclarationInfo {
adicomment = ""
,aditags = []

View File

@ -28,7 +28,6 @@ module Hledger.Data.Valuation (
where
import Control.Applicative ((<|>))
import Control.DeepSeq (NFData)
import Data.Decimal (roundTo)
import Data.Function ((&), on)
import Data.Graph.Inductive (Gr, Node, NodeMap, mkMapGraph, mkNode, lab, out, sp)
@ -86,8 +85,6 @@ data PriceGraph = PriceGraph {
}
deriving (Show,Generic)
instance NFData PriceGraph
-- | A price oracle is a magic memoising function that efficiently
-- looks up market prices (exchange rates) from one commodity to
-- another (or if unspecified, to a default valuation commodity) on a

View File

@ -1,10 +1,10 @@
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.33.0.
-- This file has been generated from package.yaml by hpack version 0.34.2.
--
-- see: https://github.com/sol/hpack
--
-- hash: ca2b9f025d75c0b65f91b2e5fe7203d00d1d9f8c423c8c4f0cb7675df848a5aa
-- hash: e8ee8c99329f53fe86ae9df138d05c8c39726a66da2ad1da3ae27500c45b2591
name: hledger-lib
version: 1.18.99
@ -124,7 +124,6 @@ library
, cmdargs >=0.10
, containers
, data-default >=0.5
, deepseq
, directory
, extra >=1.6.3
, fgl >=5.5.4.0
@ -177,7 +176,6 @@ test-suite doctest
, cmdargs >=0.10
, containers
, data-default >=0.5
, deepseq
, directory
, doctest >=0.16.3
, extra >=1.6.3
@ -233,7 +231,6 @@ test-suite unittest
, cmdargs >=0.10
, containers
, data-default >=0.5
, deepseq
, directory
, extra >=1.6.3
, fgl >=5.5.4.0

View File

@ -59,7 +59,6 @@ dependencies:
- cassava-megaparsec
- data-default >=0.5
- Decimal >=0.5.1
- deepseq
- directory
- fgl >=5.5.4.0
- file-embed >=0.0.10