Safe Haskell | None |
---|---|
Language | Haskell2010 |
Tax.Canada.Shared
Description
Common types and functions shared by multiple Canadian tax forms
Synopsis
- data TaxIncomeBracket (line :: Type -> Type) = TaxIncomeBracket {}
- data MedicalExpenses (line :: Type -> Type) = MedicalExpenses {}
- data BaseCredit (line :: Type -> Type) = BaseCredit {
- baseAmount :: line Centi
- reduction :: line Centi
- difference :: line Centi
- cont :: line Centi
- data SubCalculation (line :: Type -> Type) = SubCalculation {
- calculation :: line Centi
- result :: line Centi
- fixTaxIncomeBracket :: Maybe Centi -> Maybe (TaxIncomeBracket Maybe) -> TaxIncomeBracket Maybe -> TaxIncomeBracket Maybe
- fixBaseCredit :: BaseCredit Maybe -> BaseCredit Maybe
- fixMedicalExpenses :: Centi -> MedicalExpenses Maybe -> MedicalExpenses Maybe
- fixSubCalculation :: (Rational -> Rational) -> Maybe Centi -> SubCalculation Maybe
- subCalculationFields :: Text -> [Text] -> [Text] -> SubCalculation FieldConst
Documentation
data TaxIncomeBracket (line :: Type -> Type) Source #
Constructors
TaxIncomeBracket | |
Instances
data MedicalExpenses (line :: Type -> Type) Source #
Constructors
MedicalExpenses | |
Instances
data BaseCredit (line :: Type -> Type) Source #
Used in several provincial forms to calculate a fixed amount of tax credit reduced by income.
Constructors
BaseCredit | |
Fields
|
Instances
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, At t Centi, At t Centi, At t Centi, At t Centi) => Foldable t BaseCredit Source # | |
Defined in Tax.Canada.Shared | |
(Transformation t, At t Centi, At t Centi, At t Centi, At t Centi) => Functor t BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods (<$>) :: t -> BaseCredit (Domain t) -> BaseCredit (Codomain t) | |
(Transformation t, Codomain t ~ Compose m f, Applicative m, At t Centi, At t Centi, At t Centi, At t Centi) => Traversable t BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods traverse :: forall m0 (f0 :: Type -> Type). Codomain t ~ Compose m0 f0 => t -> BaseCredit (Domain t) -> m0 (BaseCredit f0) | |
Applicative BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods pure :: (forall a. f a) -> BaseCredit f | |
Apply BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods (<*>) :: forall (p :: Type -> Type) (q :: Type -> Type). BaseCredit (p ~> q) -> BaseCredit p -> BaseCredit q liftA2 :: (forall a. p a -> q a -> r a) -> BaseCredit p -> BaseCredit q -> BaseCredit r liftA3 :: (forall a. p a -> q a -> r a -> s a) -> BaseCredit p -> BaseCredit q -> BaseCredit r -> BaseCredit s | |
Distributive BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods collect :: forall p a (q :: Type -> Type). Functor p => (a -> BaseCredit q) -> p a -> BaseCredit (Compose p q) distribute :: forall p (q :: Type -> Type). Functor p => p (BaseCredit q) -> BaseCredit (Compose p q) cotraverse :: Functor m => (forall a. m (p a) -> q a) -> m (BaseCredit p) -> BaseCredit q | |
DistributiveTraversable BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods collectTraversable :: forall f1 a (f2 :: Type -> Type). Traversable f1 => (a -> BaseCredit f2) -> f1 a -> BaseCredit (Compose f1 f2) distributeTraversable :: forall f1 (f2 :: Type -> Type). Traversable f1 => f1 (BaseCredit f2) -> BaseCredit (Compose f1 f2) cotraverseTraversable :: Traversable f1 => (forall x. f1 (f2 x) -> f x) -> f1 (BaseCredit f2) -> BaseCredit f | |
Foldable BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods foldMap :: Monoid m => (forall a. p a -> m) -> BaseCredit p -> m | |
Functor BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods (<$>) :: (forall a. p a -> q a) -> BaseCredit p -> BaseCredit q | |
Logistic BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods deliver :: forall p (q :: Type -> Type). Contravariant p => p (BaseCredit q -> BaseCredit q) -> BaseCredit (Compose p (q ~> q)) | |
Traversable BaseCredit Source # | |
Defined in Tax.Canada.Shared Methods traverse :: Applicative m => (forall a. p a -> m (q a)) -> BaseCredit p -> m (BaseCredit q) sequence :: forall m (p :: Type -> Type). Applicative m => BaseCredit (Compose m p) -> m (BaseCredit p) | |
(Show (line Centi), Show (line Rational)) => Show (BaseCredit line) Source # | |
Defined in Tax.Canada.Shared Methods showsPrec :: Int -> BaseCredit line -> ShowS # show :: BaseCredit line -> String # showList :: [BaseCredit line] -> ShowS # | |
(Eq (line Centi), Eq (line Rational)) => Eq (BaseCredit line) Source # | |
Defined in Tax.Canada.Shared Methods (==) :: BaseCredit line -> BaseCredit line -> Bool # (/=) :: BaseCredit line -> BaseCredit line -> Bool # |
data SubCalculation (line :: Type -> Type) Source #
A pair of form fields appearing next to each other at the same line, the right field value always depending only on the left one.
Constructors
SubCalculation | |
Fields
|
Instances
fixTaxIncomeBracket :: Maybe Centi -> Maybe (TaxIncomeBracket Maybe) -> TaxIncomeBracket Maybe -> TaxIncomeBracket Maybe Source #
fixSubCalculation :: (Rational -> Rational) -> Maybe Centi -> SubCalculation Maybe Source #
subCalculationFields :: Text -> [Text] -> [Text] -> SubCalculation FieldConst Source #