canadian-income-tax-2024.0: Canadian income tax calculation
Safe HaskellNone
LanguageHaskell2010

Tax.Canada.Federal

Description

The federal income tax forms

Synopsis

Documentation

data InputForms (line :: Type -> Type) Source #

All supported federal input forms, not to be filled in

data Forms (line :: Type -> Type) Source #

All supported federal forms

Constructors

Forms 

Fields

Instances

Instances details
(Transformation t, Codomain t ~ (Const m :: Type -> Type), Monoid m, Foldable t T1, Foldable t Schedule6, Foldable t Schedule7, Foldable t Schedule8, Foldable t Schedule9, Foldable t Schedule11) => Foldable t Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

foldMap :: (Codomain t ~ (Const m0 :: Type -> Type), Monoid m0) => t -> Forms (Domain t) -> m0

(Transformation t, Functor t T1, Functor t Schedule6, Functor t Schedule7, Functor t Schedule8, Functor t Schedule9, Functor t Schedule11) => Functor t Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

(<$>) :: t -> Forms (Domain t) -> Forms (Codomain t)

(Transformation t, Codomain t ~ Compose m f, Applicative m, Traversable t T1, Traversable t Schedule6, Traversable t Schedule7, Traversable t Schedule8, Traversable t Schedule9, Traversable t Schedule11) => Traversable t Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

traverse :: forall m0 (f0 :: Type -> Type). Codomain t ~ Compose m0 f0 => t -> Forms (Domain t) -> m0 (Forms f0)

Applicative Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

pure :: (forall a. f a) -> Forms f

Apply Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

(<*>) :: forall (p :: Type -> Type) (q :: Type -> Type). Forms (p ~> q) -> Forms p -> Forms q

liftA2 :: (forall a. p a -> q a -> r a) -> Forms p -> Forms q -> Forms r

liftA3 :: (forall a. p a -> q a -> r a -> s a) -> Forms p -> Forms q -> Forms r -> Forms s

Distributive Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

collect :: forall p a (q :: Type -> Type). Functor p => (a -> Forms q) -> p a -> Forms (Compose p q)

distribute :: forall p (q :: Type -> Type). Functor p => p (Forms q) -> Forms (Compose p q)

cotraverse :: Functor m => (forall a. m (p a) -> q a) -> m (Forms p) -> Forms q

DistributiveTraversable Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

collectTraversable :: forall f1 a (f2 :: Type -> Type). Traversable f1 => (a -> Forms f2) -> f1 a -> Forms (Compose f1 f2)

distributeTraversable :: forall f1 (f2 :: Type -> Type). Traversable f1 => f1 (Forms f2) -> Forms (Compose f1 f2)

cotraverseTraversable :: Traversable f1 => (forall x. f1 (f2 x) -> f x) -> f1 (Forms f2) -> Forms f

Foldable Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

foldMap :: Monoid m => (forall a. p a -> m) -> Forms p -> m

Functor Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

(<$>) :: (forall a. p a -> q a) -> Forms p -> Forms q

Logistic Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

deliver :: forall p (q :: Type -> Type). Contravariant p => p (Forms q -> Forms q) -> Forms (Compose p (q ~> q))

Traversable Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

traverse :: Applicative m => (forall a. p a -> m (q a)) -> Forms p -> m (Forms q)

sequence :: forall m (p :: Type -> Type). Applicative m => Forms (Compose m p) -> m (Forms p)

(Show (line Bool), Show (line Centi), Show (line Word), Show (line Int), Show (line Text), Show (line Rational), Show (line Code), Show (line Day), Show (line LanguageOfCorrespondence), Show (line MaritalStatus)) => Show (Forms line) Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

showsPrec :: Int -> Forms line -> ShowS #

show :: Forms line -> String #

showList :: [Forms line] -> ShowS #

(Eq (line Bool), Eq (line Centi), Eq (line Word), Eq (line Int), Eq (line Text), Eq (line Rational), Eq (line Code), Eq (line Day), Eq (line LanguageOfCorrespondence), Eq (line MaritalStatus)) => Eq (Forms line) Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

(==) :: Forms line -> Forms line -> Bool #

(/=) :: Forms line -> Forms line -> Bool #

fixFederalForms :: Code -> InputForms Maybe -> Forms Maybe -> Forms Maybe Source #

Complete all the federal forms, also handling the inter-form field references.

formFieldsForProvince :: Code -> Forms FieldConst Source #

The paths of all the fields in all federal forms, with the form key added as the head of every field path.

formFileNames :: Map FormKey Text Source #

A map of standard file paths, without the common suffix and extension, of all supported federal schedule forms.

relevantFormKeys :: T1 Maybe -> Set FormKey Source #

The set of keys of all auxiliary forms that have effect in the given T1 form.