canadian-income-tax
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.