1 {-# LANGUAGE DeriveDataTypeable #-}
2 {-# LANGUAGE FlexibleContexts #-}
3 {-# LANGUAGE FlexibleInstances #-}
4 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
5 {-# LANGUAGE OverloadedStrings #-}
6 {-# LANGUAGE StandaloneDeriving #-}
7 {-# LANGUAGE TypeFamilies #-}
8 {-# OPTIONS_GHC -fno-warn-orphans #-}
9 module Hcompta.Format.Ledger.Quantity where
13 -- import Data.Eq (Eq(..))
14 -- import Data.Maybe (Maybe(..))
15 -- import Data.Ord (Ord(..))
16 import Data.Typeable ()
17 import Data.Word (Word8)
18 -- import Prelude (Num(..))
20 -- import qualified Hcompta.Polarize as Polarize
21 -- import qualified Hcompta.Quantity as Quantity
22 import qualified Hcompta.Filter.Amount as Filter.Amount
25 type Quantity = Filter.Amount.Quantity
27 deriving instance Data Quantity
29 instance Quantity.Zero Quantity where
31 quantity_null = (==) 0 -- . decimalMantissa
32 instance Quantity.Addable Quantity where
34 instance Quantity.Negable Quantity where
36 instance Polarize.Polarizable Quantity where
37 polarizable_negative q =
41 polarizable_positive q =
47 quantity_round :: Word8 -> Quantity -> Quantity
48 quantity_round = Data.Decimal.roundTo