{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE DisambiguateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedStrings #-} module Tax.Canada.Province.AB.AB428.FieldNames (ab428Fields) where import Data.Fixed (Centi) import Rank2 qualified import Tax.Canada.Province.AB.AB428.Types import Tax.Canada.Shared (BaseCredit(..), MedicalExpenses(..), TaxIncomeBracket (..), subCalculationFields) import Tax.FDF (Entry (Count, Constant, Amount, Percent), FieldConst (Field, NoField), within) ab428Fields :: AB428 FieldConst ab428Fields = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "form1" (forall {a}. FieldConst a -> FieldConst a) -> AB428 FieldConst -> AB428 FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> AB428 p -> AB428 q Rank2.<$> AB428 { $sel:page1:AB428 :: Page1 FieldConst page1 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Page1" (forall {a}. FieldConst a -> FieldConst a) -> Page1 FieldConst -> Page1 FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page1 p -> Page1 q Rank2.<$> Page1 FieldConst page1Fields, $sel:page2:AB428 :: Page2 FieldConst page2 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Page2" (forall {a}. FieldConst a -> FieldConst a) -> Page2 FieldConst -> Page2 FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page2 p -> Page2 q Rank2.<$> Page2 FieldConst page2Fields, $sel:page3:AB428 :: Page3 FieldConst page3 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Page3" (forall {a}. FieldConst a -> FieldConst a) -> Page3 FieldConst -> Page3 FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page3 p -> Page3 q Rank2.<$> Page3 FieldConst page3Fields} page1Fields :: Page1 FieldConst page1Fields = Page1 { $sel:income:Page1 :: FieldConst Centi income = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line1", Text "Amount"] Entry Centi Amount, $sel:partA:Page1 :: Page1PartA FieldConst partA = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Chart" (forall {a}. FieldConst a -> FieldConst a) -> Page1PartA FieldConst -> Page1PartA FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page1PartA p -> Page1PartA q Rank2.<$> Page1PartA FieldConst page1PartAFields, $sel:partB:Page1 :: Page1PartB FieldConst partB = Page1PartB FieldConst page1PartBFields} page1PartAFields :: Page1PartA FieldConst page1PartAFields = Page1PartA { $sel:column1:Page1PartA :: TaxIncomeBracket FieldConst column1 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Column1" (forall {a}. FieldConst a -> FieldConst a) -> TaxIncomeBracket FieldConst -> TaxIncomeBracket FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> TaxIncomeBracket p -> TaxIncomeBracket q Rank2.<$> Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi 0 Rational 0.10 Centi 0, $sel:column2:Page1PartA :: TaxIncomeBracket FieldConst column2 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Column2" (forall {a}. FieldConst a -> FieldConst a) -> TaxIncomeBracket FieldConst -> TaxIncomeBracket FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> TaxIncomeBracket p -> TaxIncomeBracket q Rank2.<$> Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi 142_292 Rational 0.12 Centi 14_229.20, $sel:column3:Page1PartA :: TaxIncomeBracket FieldConst column3 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Column3" (forall {a}. FieldConst a -> FieldConst a) -> TaxIncomeBracket FieldConst -> TaxIncomeBracket FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> TaxIncomeBracket p -> TaxIncomeBracket q Rank2.<$> (Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi 170_751 Rational 0.13 Centi 17_644.28){rate = Field ["LIne5", "Percent"] $ Constant 0.13 Percent}, $sel:column4:Page1PartA :: TaxIncomeBracket FieldConst column4 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Column4" (forall {a}. FieldConst a -> FieldConst a) -> TaxIncomeBracket FieldConst -> TaxIncomeBracket FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> TaxIncomeBracket p -> TaxIncomeBracket q Rank2.<$> Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi 227_668 Rational 0.14 Centi 25_043.49, $sel:column5:Page1PartA :: TaxIncomeBracket FieldConst column5 = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Column5" (forall {a}. FieldConst a -> FieldConst a) -> TaxIncomeBracket FieldConst -> TaxIncomeBracket FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> TaxIncomeBracket p -> TaxIncomeBracket q Rank2.<$> Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi 341_502 Rational 0.15 Centi 40_980.25} taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields :: Centi -> Rational -> Centi -> TaxIncomeBracket FieldConst taxIncomeBracketFields Centi threshold Rational rate Centi baseTax = TaxIncomeBracket { $sel:income:TaxIncomeBracket :: FieldConst Centi income = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line2", Text "Amount"] Entry Centi Amount, $sel:threshold:TaxIncomeBracket :: FieldConst Centi threshold = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line3", Text "Amount_Fixed"] (Entry Centi -> FieldConst Centi) -> Entry Centi -> FieldConst Centi forall a b. (a -> b) -> a -> b $ Centi -> Entry Centi -> Entry Centi forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Centi threshold Entry Centi Amount, $sel:overThreshold:TaxIncomeBracket :: FieldConst Centi overThreshold = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line4", Text "Amount"] Entry Centi Amount, $sel:rate:TaxIncomeBracket :: FieldConst Rational rate = [Text] -> Entry Rational -> FieldConst Rational forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line5", Text "Percent"] (Entry Rational -> FieldConst Rational) -> Entry Rational -> FieldConst Rational forall a b. (a -> b) -> a -> b $ Rational -> Entry Rational -> Entry Rational forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Rational rate Entry Rational Percent, $sel:timesRate:TaxIncomeBracket :: FieldConst Centi timesRate = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line6", Text "Amount"] Entry Centi Amount, $sel:baseTax:TaxIncomeBracket :: FieldConst Centi baseTax = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line7", Text "Amount_Fixed"] (Entry Centi -> FieldConst Centi) -> Entry Centi -> FieldConst Centi forall a b. (a -> b) -> a -> b $ Centi -> Entry Centi -> Entry Centi forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Centi baseTax Entry Centi Amount, $sel:equalsTax:TaxIncomeBracket :: FieldConst Centi equalsTax = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line8", Text "Amount"] Entry Centi Amount} page1PartBFields :: Page1PartB FieldConst page1PartBFields = Page1PartB { $sel:line9_basic:Page1PartB :: FieldConst Centi line9_basic = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line9", Text "Amount"] Entry Centi Amount, $sel:line10_age:Page1PartB :: FieldConst Centi line10_age = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line10", Text "Amount"] Entry Centi Amount, $sel:spouseAmount:Page1PartB :: BaseCredit FieldConst spouseAmount = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Line11to13" (forall {a}. FieldConst a -> FieldConst a) -> BaseCredit FieldConst -> BaseCredit FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> BaseCredit p -> BaseCredit q Rank2.<$> BaseCredit{ $sel:baseAmount:BaseCredit :: FieldConst Centi baseAmount = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line11", Text "Amount_Fixed"] (Entry Centi -> FieldConst Centi) -> Entry Centi -> FieldConst Centi forall a b. (a -> b) -> a -> b $ Centi -> Entry Centi -> Entry Centi forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Centi 21_003 Entry Centi Amount, $sel:reduction:BaseCredit :: FieldConst Centi reduction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line12", Text "Amount"] Entry Centi Amount, $sel:difference:BaseCredit :: FieldConst Centi difference = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line13", Text "Amount1"] Entry Centi Amount, $sel:cont:BaseCredit :: FieldConst Centi cont = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line13", Text "Amount2"] Entry Centi Amount}, $sel:dependantAmount:Page1PartB :: BaseCredit FieldConst dependantAmount = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "Line14to16" (forall {a}. FieldConst a -> FieldConst a) -> BaseCredit FieldConst -> BaseCredit FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> BaseCredit p -> BaseCredit q Rank2.<$> BaseCredit{ $sel:baseAmount:BaseCredit :: FieldConst Centi baseAmount = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line14", Text "Amount_Fixed"] (Entry Centi -> FieldConst Centi) -> Entry Centi -> FieldConst Centi forall a b. (a -> b) -> a -> b $ Centi -> Entry Centi -> Entry Centi forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Centi 21_003 Entry Centi Amount, $sel:reduction:BaseCredit :: FieldConst Centi reduction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line15", Text "Amount"] Entry Centi Amount, $sel:difference:BaseCredit :: FieldConst Centi difference = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line16", Text "Amount1"] Entry Centi Amount, $sel:cont:BaseCredit :: FieldConst Centi cont = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line16", Text "Amount2"] Entry Centi Amount}, $sel:line17_infirm:Page1PartB :: FieldConst Centi line17_infirm = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line17", Text "Amount"] Entry Centi Amount, $sel:line18:Page1PartB :: FieldConst Centi line18 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line18", Text "Amount"] Entry Centi Amount, $sel:line19_cppQpp:Page1PartB :: FieldConst Centi line19_cppQpp = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line19to20", Text "Line19", Text "Amount"] Entry Centi Amount, $sel:line20_cppQpp:Page1PartB :: FieldConst Centi line20_cppQpp = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line19to20", Text "Line20", Text "Amount"] Entry Centi Amount, $sel:line21_employmentInsurance:Page1PartB :: FieldConst Centi line21_employmentInsurance = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line21to22", Text "Line21", Text "Amount"] Entry Centi Amount, $sel:line22_employmentInsurance:Page1PartB :: FieldConst Centi line22_employmentInsurance = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line21to22", Text "Line22", Text "Amount"] Entry Centi Amount, $sel:line23_adoption:Page1PartB :: FieldConst Centi line23_adoption = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line23", Text "Amount"] Entry Centi Amount, $sel:line24_sum:Page1PartB :: SubCalculation FieldConst line24_sum = Text -> [Text] -> [Text] -> SubCalculation FieldConst subCalculationFields Text "Line24" [Text "Amount1"] [Text "Amount2"], $sel:line25:Page1PartB :: FieldConst Centi line25 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line25", Text "Amount"] Entry Centi Amount} page2Fields :: Page2 FieldConst page2Fields = Page2 { $sel:partB:Page2 :: Page2PartB FieldConst partB = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "PartB_Page2" (forall {a}. FieldConst a -> FieldConst a) -> Page2PartB FieldConst -> Page2PartB FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Page2PartB p -> Page2PartB q Rank2.<$> Page2PartB FieldConst page2PartBFields} page2PartBFields :: Page2PartB FieldConst page2PartBFields = Page2PartB { $sel:line26:Page2PartB :: FieldConst Centi line26 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line26", Text "Amount"] Entry Centi Amount, $sel:line27_pension:Page2PartB :: FieldConst Centi line27_pension = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line27", Text "Amount"] Entry Centi Amount, $sel:line28_caregiver:Page2PartB :: FieldConst Centi line28_caregiver = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line28", Text "Amount"] Entry Centi Amount, $sel:line29:Page2PartB :: FieldConst Centi line29 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line29", Text "Amount"] Entry Centi Amount, $sel:line30_disability:Page2PartB :: FieldConst Centi line30_disability = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line30", Text "Amount"] Entry Centi Amount, $sel:line31:Page2PartB :: FieldConst Centi line31 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line31", Text "Amount"] Entry Centi Amount, $sel:line32:Page2PartB :: FieldConst Centi line32 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line32", Text "Amount"] Entry Centi Amount, $sel:line33_interest:Page2PartB :: FieldConst Centi line33_interest = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line33", Text "Amount"] Entry Centi Amount, $sel:line34_education:Page2PartB :: FieldConst Centi line34_education = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line34", Text "Amount"] Entry Centi Amount, $sel:line35_transferredSpouse:Page2PartB :: FieldConst Centi line35_transferredSpouse = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line35", Text "Amount"] Entry Centi Amount, $sel:line36:Page2PartB :: FieldConst Centi line36 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line36", Text "Amount"] Entry Centi Amount, $sel:medicalExpenses:Page2PartB :: MedicalExpenses FieldConst medicalExpenses = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "MedicalExp" (forall {a}. FieldConst a -> FieldConst a) -> MedicalExpenses FieldConst -> MedicalExpenses FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> MedicalExpenses p -> MedicalExpenses q Rank2.<$> MedicalExpenses FieldConst medicalExpensesFields, $sel:line43:Page2PartB :: FieldConst Centi line43 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line43", Text "Amount"] Entry Centi Amount, $sel:line44_sum:Page2PartB :: SubCalculation FieldConst line44_sum = Text -> [Text] -> [Text] -> SubCalculation FieldConst subCalculationFields Text "Line44" [Text "Amount1"] [Text "Amount2"], $sel:line45:Page2PartB :: FieldConst Centi line45 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line45", Text "Amount"] Entry Centi Amount, $sel:line46_rate:Page2PartB :: FieldConst Rational line46_rate = [Text] -> Entry Rational -> FieldConst Rational forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line46", Text "Percent"] (Entry Rational -> FieldConst Rational) -> Entry Rational -> FieldConst Rational forall a b. (a -> b) -> a -> b $ Rational -> Entry Rational -> Entry Rational forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Rational 0.10 Entry Rational Percent, $sel:line47_fraction:Page2PartB :: FieldConst Centi line47_fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line47", Text "Amount"] Entry Centi Amount, $sel:donations:Page2PartB :: Donations FieldConst donations = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "DonationGift" (forall {a}. FieldConst a -> FieldConst a) -> Donations FieldConst -> Donations FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> Donations p -> Donations q Rank2.<$> Donations FieldConst donationFields, $sel:line50_sum:Page2PartB :: SubCalculation FieldConst line50_sum = Text -> [Text] -> [Text] -> SubCalculation FieldConst subCalculationFields Text "Line50" [Text "Amount1"] [Text "Amount2"], $sel:line51:Page2PartB :: FieldConst Centi line51 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line51", Text "Amount"] Entry Centi Amount} medicalExpensesFields :: MedicalExpenses FieldConst medicalExpensesFields = MedicalExpenses { $sel:expenses:MedicalExpenses :: FieldConst Centi expenses = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line37", Text "Amount"] Entry Centi Amount, $sel:netIncome:MedicalExpenses :: FieldConst Centi netIncome = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line38", Text "Amount"] Entry Centi Amount, $sel:incomeRate:MedicalExpenses :: FieldConst Rational incomeRate = [Text] -> Entry Rational -> FieldConst Rational forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line39", Text "PercentAmount"] (Entry Rational -> FieldConst Rational) -> Entry Rational -> FieldConst Rational forall a b. (a -> b) -> a -> b $ Rational -> Entry Rational -> Entry Rational forall a. (Eq a, Show a) => a -> Entry a -> Entry a Constant Rational 0.03 Entry Rational Percent, $sel:fraction:MedicalExpenses :: FieldConst Centi fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line40", Text "Amount1"] Entry Centi Amount, $sel:lesser:MedicalExpenses :: FieldConst Centi lesser = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line41", Text "Amount"] Entry Centi Amount, $sel:difference:MedicalExpenses :: FieldConst Centi difference = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line42", Text "Amount"] Entry Centi Amount} donationFields :: Donations FieldConst donationFields = Donations { $sel:line48_base:Donations :: FieldConst Centi line48_base = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line48", Text "Amount1"] Entry Centi Amount, $sel:line48_fraction:Donations :: FieldConst Centi line48_fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line48", Text "Amount2"] Entry Centi Amount, $sel:line49_base:Donations :: FieldConst Centi line49_base = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line49", Text "Amount1"] Entry Centi Amount, $sel:line49_fraction:Donations :: FieldConst Centi line49_fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line49", Text "Amount2"] Entry Centi Amount} page3Fields :: Page3 FieldConst page3Fields = Page3 { $sel:partC:Page3 :: PartC FieldConst partC = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "PartC" (forall {a}. FieldConst a -> FieldConst a) -> PartC FieldConst -> PartC FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> PartC p -> PartC q Rank2.<$> PartC FieldConst partCFields, $sel:partD:Page3 :: PartD FieldConst partD = Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "PartC" (FieldConst a -> FieldConst a) -> (FieldConst a -> FieldConst a) -> FieldConst a -> FieldConst a forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> FieldConst a -> FieldConst a forall x. Text -> FieldConst x -> FieldConst x within Text "UAITC" (forall {a}. FieldConst a -> FieldConst a) -> PartD FieldConst -> PartD FieldConst forall {k} (g :: (k -> *) -> *) (p :: k -> *) (q :: k -> *). Functor g => (forall (a :: k). p a -> q a) -> g p -> g q forall (p :: * -> *) (q :: * -> *). (forall a. p a -> q a) -> PartD p -> PartD q Rank2.<$> PartD FieldConst partDFields} partCFields :: PartC FieldConst partCFields = PartC { $sel:line52_tax:PartC :: FieldConst Centi line52_tax = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line52", Text "Amount"] Entry Centi Amount, $sel:line53_splitIncomeTax:PartC :: FieldConst Centi line53_splitIncomeTax = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line53", Text "Amount"] Entry Centi Amount, $sel:line54:PartC :: FieldConst Centi line54 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line54", Text "Amount"] Entry Centi Amount, $sel:line55_copy:PartC :: FieldConst Centi line55_copy = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line55", Text "Amount"] Entry Centi Amount, $sel:line56_dividendCredits:PartC :: FieldConst Centi line56_dividendCredits = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line56", Text "Amount"] Entry Centi Amount, $sel:line57_copy:PartC :: FieldConst Centi line57_copy = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line57", Text "Amount1"] Entry Centi Amount, $sel:line57_fraction:PartC :: FieldConst Centi line57_fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line57", Text "Amount2"] Entry Centi Amount, $sel:line58_sum:PartC :: SubCalculation FieldConst line58_sum = Text -> [Text] -> [Text] -> SubCalculation FieldConst subCalculationFields Text "Line58" [Text "Amount1"] [Text "Amount2"], $sel:line59_difference:PartC :: FieldConst Centi line59_difference = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line59", Text "Amount"] Entry Centi Amount, $sel:line60_fromT691:PartC :: FieldConst Centi line60_fromT691 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line60", Text "Amount1"] Entry Centi Amount, $sel:line60_fraction:PartC :: FieldConst Centi line60_fraction = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line60", Text "Amount2"] Entry Centi Amount, $sel:line61:PartC :: FieldConst Centi line61 = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line61", Text "Amount"] Entry Centi Amount, $sel:line62_foreignCredit:PartC :: FieldConst Centi line62_foreignCredit = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line62", Text "Amount"] Entry Centi Amount, $sel:line63_difference:PartC :: FieldConst Centi line63_difference = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line63", Text "Amount"] Entry Centi Amount, $sel:line64_political:PartC :: FieldConst Centi line64_political = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "PoliticalCont", Text "Line64", Text "Amount"] Entry Centi Amount, $sel:line65_political:PartC :: FieldConst Centi line65_political = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "PoliticalCont", Text "Line65", Text "Amount"] Entry Centi Amount, $sel:line66_tax:PartC :: FieldConst Centi line66_tax = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "PoliticalCont", Text "Line66", Text "Amount"] Entry Centi Amount} partDFields :: PartD FieldConst partDFields = PartD { $sel:line67_investorCredit:PartD :: FieldConst Centi line67_investorCredit = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line67", Text "Amount"] Entry Centi Amount, $sel:line68_stockCredit:PartD :: FieldConst Centi line68_stockCredit = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line68", Text "Amount"] Entry Centi Amount, $sel:line69_credits:PartD :: FieldConst Centi line69_credits = [Text] -> Entry Centi -> FieldConst Centi forall a. [Text] -> Entry a -> FieldConst a Field [Text "Line69", Text "Amount"] Entry Centi Amount}