canadian-income-tax-2023.0: Canadian income tax calculation
Safe HaskellSafe-Inferred
LanguageHaskell2010

Tax.Canada.Federal

Description

The federal income tax forms

Synopsis

Documentation

data Forms line 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 Schedule9, Foldable t Schedule11) => Foldable t Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

foldMap :: (Codomain t ~ Const m, Monoid m) => t -> Forms (Domain t) -> m #

(Transformation t, Functor t T1, Functor t Schedule6, Functor t Schedule7, 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 Schedule9, Traversable t Schedule11) => Traversable t Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

traverse :: forall m (f :: Type -> Type). Codomain t ~ Compose m f => t -> Forms (Domain t) -> m (Forms f) #

Applicative Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

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

Apply Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

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

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

liftA3 :: (forall (a :: k). 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 :: k1 -> Type). Functor p => (a -> Forms q) -> p a -> Forms (Compose p q) #

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

cotraverse :: Functor m => (forall (a :: k1). 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 :: k -> Type). Traversable f1 => (a -> Forms f2) -> f1 a -> Forms (Compose f1 f2) #

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

cotraverseTraversable :: Traversable f1 => (forall (x :: k). 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 :: k). p a -> m) -> Forms p -> m #

Functor Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

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

Logistic Forms Source # 
Instance details

Defined in Tax.Canada.Federal

Methods

deliver :: forall p (q :: k1 -> 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 :: k). p a -> m (q a)) -> Forms p -> m (Forms q) #

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

(Show (line Bool), Show (line Centi), Show (line Word), 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 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 :: 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.