zM      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                         None9;/represents a time span between accounting dates"0 corresponds to 0 time differenceaccounting dates0 corresponds to January 0 convert a month to a pair of s.  Create an = value that corresponds to the last month of the given year.  Create an ` value that corresponds to the given month in year 0. (Fails if argument is outside of [1..12]) Create an 4 value corresponding to the given number of monhts.convert a span to a pair of s.$Calculate the span between two dates"Shift a date by a given date span. Construct an  value from a month an a year4Check if the second span is a multiple of the first.)helper function to update an MArray value0Get the range of the first dimension of an array1Get the bounds of the first dimension of an array1Get the range of the second dimension of an array2Get the bounds of the second dimension of an array+apply a function to both elements of a pair+apply a function to both elements of a pair>Return a value only if the condition holds and zero otherwise.=Conversion between different fractional types. E.g. between  and .9generate an array and take the bounds from the input databound checking array acces with error msg (?!) :: Ix i => Array i e -> (String,i) -> e array ?! (String,index) = if bounds array a index then array ! index else error index take the positive par of a [assert that the result of an action satisfies a certain condition or print an error message,  (year,month)  (year,month) start dateend date1a list of associations of the form (index, value) !"#$%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw   &  !"#$%None*59:;<=ADRT)-Btype synonym for an accounting action that has an amount as result.2Short-cut class used in type signatures involving 1 and its derivatives/pA specialization for read-only actions. These actions can however produce read-write actions as output via the Writer Monad. This is used in k.0^A specializations for read-write accounting actions with no (i.e. trivial '()') writer output1The Accounting Monad4This monad is a stack of Reader Writer and IO monad.Actions from this monad can read an immutable environment. This environment however, contains references to mutable arrays (see AU), which can be modified through IO actions lifted into this monad into this monad.The body, type variable will contain the type of the  3 the current accounting action is concerned with. 2:Represents the environment an accounting action is run on.4-the ledger of the whole world (i.e. all bodys5)map of all accounts managed by the ledger6 current date7 current body 8current body's name=This type implements the Ledger in immutable form, suitable as the main result of the whole program or for accounting accounts that are garantueed to not change the ledger.AA- implements a writable (within the IO monad) E.The total balance is always zero and no transactions that depend on future values are allowed. This is guaranteed, by not exporting UNSAFE_Ledger and instead, the ledger is only changed using the exported safe functions. E.g. tx, fromTo, ...C"Balances for each Date and AccountD'Transactions and Comments for each DateEThis class defines what a E is:F it has boundsG~single entries for a given account and date consisting of the account balance and the log entries for that date can be read.Hthe account history can be readI&it can be fixed into an immutable typeJ~fix withou making a copy. This is has to be safe to use, if the mutable version is never modified after the freeze operation.N4Information that is logged while the ledger is builtO'Transactions of the current time periodP(Random comment to be put into the ledgerQA transaction involving only accounts relative to a body, and that is self balancing through the use of an account for the remainsVOA transaction that is already balanced. Such an object can only be built from Q using j] and is never needed as function input. This format is used to log the transactions in the E 's N.\ The map from `s to f,s used internally to address the efficient E array storage]+this type is used to make functions taking  AccountNames polymorphic. ^`account for the current entity. Only these accounts should be accessible in accounting actions_"full account for internal use only`<uniquely identifying name used to lookup the account numbersh>Extract accounts names order by their internal account numbersi extract the f for a ` from an \j Balance a QJ and prepend the entitiyName to the comment. This is only used internallykurun a read only action and its genrated read-write output within a general accounting action and pass on its result.qTries to get the 8= of the current entity and throws an error if it is Nothing.s(perform an accounting action at any dateufadd last month's balances to previous month's. This is performed once for every time step in generatewAllows to use x,y,z,{z directly on actions that return an amount. Furthermore any numeral can be used directly as (trivial) accounting action: soll "Cash" + 4 :: AmountA s lxAllows to use  and ? and its derivaties directly on actions that return an amount: 4min ( "Cash") (balanceAt date "Cash") :: AmountA s l~(s are automatically converted to (safe) AccoutN=ames, if the -XOverloadedStrings extensions is active. (See  Data.String).T,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~J,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYXZ[\]^_`abcdefghijklmnopqrstuTfed`abcg]^_~\hi[ZVWXYQRSTUjNOPMLKEFGHIJABCD=>?@9:;<}|234567810/{.z-,kyxwvlmnopqrstu2,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None.Type for simple transfers between two accountsAApplies a balanced transaction to the ledger at the current date.as @ but taking a list of accounts that should be emptied completelyApply a simple transactionIApply a simple transaction, but ensure, that source does not change sign0Transfer all funds from one account to the other%Get the current balance of an accountGet the balance of a  !http://de.wikipedia.org/wiki/SollSoll= account (uses the amounts directly as stored in the ledger)Get the balance of a  "http://de.wikipedia.org/wiki/HabenHaben: Account account (negates the internally stored amounts)!Get the balance at a certain date%Get the balances since a certain dateGet the current date/Restrict an accounting action to a certain dateExecute an action periodically*Execute an action at the end of every year,Executes an action only after a certain dateQPerform an accounting action now, but run it with a modified (future) date. E.g. schedule (date 12 2016) $ tx1lAll changes that tx1 performs will be written to the ledger right now, but only modify balances at 12/2016.,Write a log entry to stdout or to the ledgerWrite a log entry to the ledgerdwithin the ReadOnly Monad: register a single log entry consisting of a formating string and a valuewithin the ReadOnly Monad: return the value of an action and register a single log entry describing the value, but only if it s not zeroPeriodOffset#True = to stdout, False = to ledgerformatting stringvalueformatting stringactionJ,-./0123456789:;<=>?@EFGHIJKMNOPQRSTUVYX[\]^`abcdefhkNone9;Interest rates together with the nominal account, the could be identified with the source (for incoming interest payments) or sink (for outgoing, i.e. negative interest payments).,For example, if the interest is an expense, 9 could be "Expenses". If the interest is capital yield,  could be "Income".gthis can be something like "Earnings" if the interest can be considered earnings or another entity, ifRecurring Fixed Payment This r produces a list of twelve payments, one for each month, that are shifted in such a way, that they sum up to zero)Principal amount payed to lPaymentAccountaccount for the paymentsaccount for the open balance4interest rate for one period (not neccessarily p.a.) payout dateperiod of the interest paymentsSelect a payment scheduleGDecreasing payments with fixed repay and decreasing interest portions.FThe number specifies the repay as a fraction of the principal amount.GFixed payments with decreasing interest and increasing repay portions.NThe number specifies the initial repay as a fraction of the principal amount.This assets calculates interest according to its average positive and negative account balances over the last time period and debits it againt the s  accounts.;Other names: Revolving credit, line of credit, KontokorrentMcredit interest for negative balances for one period (not neccessarily p.a.)Ldebit interest for positive balances for one period (not neccessarily p.a.)asset's account nameperiod in monthsFAn asset is anything that can be handled within an accounting action.?derives the action corresponding to the asset's characteristicsICalculate the number of periods time until the loan is completely repaid.dCalculate the annuity (as a fraction of the principal) for a given number of periods interest rate.)Calculate the interest for a given amount:Calculate the interest for a current balance of an account-Calculate and transfer the interest from the  account to some other account./number of periods interest ratecomment Sink accountEoptional: Use this amount instead of the balance of the sink account+/NoneAT The body of an entity. _The only requirement is that each Body has a list of nominal accounts associated with it. See Germany for instances.+An entity keeping accounts over its assets..the name of the entity. This will serve as an ]A when booking transaction between this entity an another entity.the entity's asset accounts the entity's , defining its nominal acounts. time interval_Executes an accounting action in a simple environment (for testing purposes) with no accounts.Csimple (date 12 2016) NatuerlichePerson{pGeburt=date 12 1960} alter56Generate the ledger of the 9. It will include all nominal and asset accounts of all nV entities, as well as 'n*(n-1)' transactional accounts between each pair of entities.jFurthermore, it will check the balances of these transactional accounts at the end of every month using .For each pair of entities, entity1 and entity2, there are two transactional accounts, as each entity keeps its own books about its transactions with the other entity. If no entity made a mistake, the accounts should have opposite balances that cancel each other. This function informs about a violation of this property.Aconstructs an action reading an information from the current body,construct an action that depends on the body None #Zusammensetzung der Kosten fr ein J. Dieses Object wirh berechnet abhngig von Firmenwagennutzung etc. von vohne Fahrten zur Arbeit, welche auch zu den Privaten Fahrten zhlen, aber ber die anderen Felder berechnet werden (privatKmMonatl).!Entfernung Wohnort Arbeitssttte .auf wessen Rechnung wird das Gewerbe betrieben IMssen Aufwendungen fr die Krankenversicherung alleine getragen werden? Phttp://www.steuernetz.de/aav_steuernetz/lexikon/K-24101.xhtml?currentModule=homeGfhrt auch zur automatischen Abbuchung der Sozialversicherungsbeitrgein Berufsausbildung befindende, auswrtig untergebrachte, volljhrigen Kinder, fr die Anspruch auf einen Freibetrag oder Kindergeld besteht (33a Abs. 2) (http://de.wikipedia.org/wiki/FahrtenbuchDGibt Verlustabzug zurck und registriert Verlustabzug und -vortrag.GBerechnet wird nach den bereinstimmenden Regeln des EStG, KStG, GewStG ?https://www.smartsteuer.de/portal/lexikon/G/Gewerbeverlust.html =https://www.smartsteuer.de/portal/lexikon/V/Verlustabzug.html Lhttps://www.smartsteuer.de/portal/lexikon/G/Gesamtbetrag-der-Einkuenfte.html [https://www.smartsteuer.de/portal/lexikon/V/Verlustvortrag-und-ruecktrag.html#D0631001000387Gibt den Ertrag nach Abzug zurck. Ansonsten identisch :     TypeertragTypeertrag:     :           None9:;DR/:Nach den Vorschriften des EStG oder KStG ermittelte Gewinn Ehttps://www.smartsteuer.de/portal/lexikon/E/Einkommensermittlung.html =https://www.smartsteuer.de/portal/lexikon/Z/Zinsschranke.html:{Bemessungsgrundlage fr die GewSt, ist der Gewinn zuzgl. Hinzurechnungen ( 8 GewStG) und abzgl. Krzungen ( 9 GewStG) Lhttps://www.smartsteuer.de/portal/lexikon/G/Gewerbeertrag.html#D063040100012<Hinzurechnungen ( 8 GewStG) Hhttp://de.wikipedia.org/wiki/Gewerbesteuer_(Deutschland)#Hinzurechnungen=Krzungen ( 9 GewStG)>0Berechnung und Verrechnung der Relevanten gren >https://www.smartsteuer.de/portal/lexikon/G/Gewerbesteuer.html@/Berechnet die Lohnkosten fr einen Angestellten ,http://de.wikipedia.org/wiki/LohnnebenkostenA monatliche Action eines GewerbesB"Accountiung Action fr das Gewerbe""#$%&'()*+,-./0123456789:;<=>?action to run @ABC!"#$%&'()*+,-./0123456789:;<=>?@AB"-./,+*)('01234567"#$%&C89:;<=>?@AB"#$%&'()*+,-./0123456789:;<=>?@ABCNone9:;DRDEFGHIDEFGIHDEFGDEFGHI NoneLaType representing the different possible variants of Einkommensteuer calculation to be compared O(wahlrecht nach 32d Abs. 2 Nr. 3 EStG  7https://www.smartsteuer.de/portal/lexikon/A/Aktien.html  Nhttps://www.smartsteuer.de/portal/lexikon/A/Abgeltungsteuer.html#D063109700011 ^ 8http://de.wikipedia.org/wiki/Teileink%C3%BCnfteverfahren ^https://www.smartsteuer.de/portal/lexikon/E/Einkuenfte-aus-Kapitalvermoegen.html#D063026000028#damit ist nicht gemeint 32d Abs 6  Nhttps://www.smartsteuer.de/portal/lexikon/A/Abgeltungsteuer.html#D063109700006 Phttp://www.steuernetz.de/aav_steuernetz/lexikon/K-36317.xhtml?currentModule=homesondern 32 Abs. 2 Nr. 3 EStGPnot implementedQnot implemented\ppositive oder negative summe aller Einkunftsarten auer aus Kapitalvermgen und privaten Veruerungsgeschften_5gesetz. Renten, Pensionen, Bezge, .. im Sinne des &https://www.jurion.de/Gesetze/EStG/24a Hhttps://www.smartsteuer.de/portal/lexikon/A/Altersentlastungsbetrag.html`\nicht solche, die der tariflichen/persnlichen ESt. unterliegen (z.B. aus Betriebsvermgen)abeachten: 40% steuerfrei (?)b?nicht solche, die der tariflichen/persnlichen ESt. unterliegenc3einkuenfteAusKapitalvermoegen'hen nach 32d Abs 2.  Chttp://www2.nwb.de/portal/content/ir/service/news/news_1413444.aspx http://www.haufe.de/finance/finance-office-professional/rechtmaessigkeit-der-tariflichen-besteuerung-nach-32d-abs-2-nr-1b-estg_idesk_PI11525_HI5088406.html Phttps://www.smartsteuer.de/portal/lexikon/E/Einkuenfte-aus-Kapitalvermoegen.htmlhgesetzliche Renten / Rrpinot implemented!riester rente (+ zulagen. aber nur bis 2100 ??. von Steuerersparnis durch SA wird die Zulage abgezogen. Aber nur wenn ergebnis positiv)keKranken- und Pflegeversicherung Basisbeitraege" -- nur 96% der Leistungen wenn Krankengeld enthalteno!Calcuate the current age in yearsp,Calcuate in which year reaches a certain agerCalculates of the Einkommensteuer for all possible variants, selects the cheapest (Gnstigervergleich) and applies it (e.g. Verlust Vortge).s ^https://www.smartsteuer.de/portal/lexikon/E/Einkuenfte-aus-Kapitalvermoegen.html#D063026000031 0http://de.wikipedia.org/wiki/Sparer-Pauschbetrag einkuenfteAusKapitalvermoegen' = withBody $ p -> assert (>=0) (positivePart $ haben einkuenfteAusKapitalvermoegen - (splitFaktor p * 801)) "Verlust aus Kapitalvermoegen not implemented"  \https://www.smartsteuer.de/portal/lexikon/E/Einkuenfte-aus-nichtselbststaendiger-Arbeit.html Ehttps://www.smartsteuer.de/portal/lexikon/E/Entfernungspauschale.html Khttps://www.smartsteuer.de/portal/lexikon/W/Werbungskostenpauschbetrag.htmlv2Calculates the Einkommensteuer for a given variantw Fhttps://www.smartsteuer.de/portal/lexikon/S/Solidaritaetszuschlag.html>TODO eigentlich unter bercksichtigung von Kinderfreibetrgen? %https://www.jurion.de/Gesetze/SolZG/3 Lhttp://www.steuerlinks.de/steuerlexikon/lexikon/gewerbesteueranrechnung.htmlx fhttps://www.smartsteuer.de/portal/lexikon/S/Steuerermaessigung-bei-Einkuenften-aus-Gewerbebetrieb.html35 EStG http://books.google.de/books?id=NY1oFSCGGM0C&pg=PA123&lpg=PA123&dq=35+estg+verlustausgleich&source=bl&ots=hXL1TzqbyG&sig=cky8FRnixRZVTOMzWWRh7X8A_6Q&hl=en&sa=X&ei=eHUDVODgGcbqaPXMgcAK&ved=0CEoQ6AEwBA#v=onepage&q=35%20estg%20verlustausgleich&f=falseyRBerechnet den Tariflichen Einkommensteuerbetrag fr das zu versteuernde Einkommen{ @https://www.smartsteuer.de/portal/lexikon/A/Abgeltungsteuer.html|@Calculate the "zu versteuerndes Einkommen" for a given variant @https://www.smartsteuer.de/portal/lexikon/E/Einkommensteuer.html%more references in the source code...Callgemeine Sonderausgaben (z.B. auch die Kirchensteuer beinhalten)%Aktuel nur Pauschbetrag implementiert fhttp://www.ruv.de/de/r_v_ratgeber/altersvorsorge/foerderung_staat/5_basisrente_sonderausgabenabzug.jsp Phttp://www.steuernetz.de/aav_steuernetz/lexikon/K-23995.xhtml?currentModule=home Phttp://www.steuernetz.de/aav_steuernetz/lexikon/K-24101.xhtml?currentModule=homeKTODO bis 2019 mglicher Gnsitgervergleich mit Berechnungsmethode bis 2004?GBerechnet den anzurechnenden Freibetrag und das abzuziehende Kindergeld Hhttps://www.smartsteuer.de/portal/lexikon/A/Altersentlastungsbetrag.html &https://www.jurion.de/Gesetze/EStG/24a@JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw GewerbeSteuerxgeminderte Einkommensteueryz{|}~@JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@XYZ[\]^_`abcdefghijklmWVUTSRnopqrLMNOPQKJstuvwxyz{|}~;JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None9:;DR'Accountiung Action fr die PrivatpersonNone9:;DR     "#$%&'()*+,-./0123456789:;<=>?@ABDEFGJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None9;Write the ledger to html filesconvert ledger to Html Markup)create one html row with comment and dateconvert log entries to markupthe html skelettonegenerates a row containing the posting's amount at the column corresponding to the posting's accountRenders a list of grouped rowsConvert a 2D array into a list of pairs, where the first component contains the first index and the second the coresponding row o the array output dirnumber of columns presentaccount number bounds None    | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGGHIJJKLMNOPQRSTUVWXYZ[\]]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                                                              !"#$%&'()*+,*+-*./*01*02*03*04*05*06*07*08*09*0:*0;*0<*0=>?@ABCDEFGHIJKLMNOPQRSTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTpTqTrTsTtTuTvTwTxTxTyTzT{T|T}~'''''''''''''''''''''''''''      ! " #%$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMLNLOLPLQLRLSLTLUVWXYZ[\]^_`abcdefghijkijlmnompqmprmpsmptmpumvwmvxmvymvzmv{mv|mv}m~m~m~m~m~m~m~iiiiiiiiiiiiii hax-0.0.2-Lj8gOWDiNX5LEcFpshI2lz HAX.CommonHAX.Bookkeeping.InternalHAX.Bookkeeping HAX.AssetsHAX.AccountingHAX.Germany.SubjekteHAX.Germany.GewerbeHAX.Germany.GmbHHAX.Germany.EinkommensteuerHAX.Germany.NatuerlichePerson HAX.Report HAX.Example AccountingBody HAX.GermanyPListpListASpansMonthsADateCommentAmountgetMonthgetYear yearMonth endOfYearmonthmonths yearMonthSpanyearSpandateSpanshiftdatedivides updateArrayrange1bounds1range2bounds2bothwhen'conv assocArray positivePartassert$fPrintfArgDecimalRaw $fNumASpan$fPrintfArgADate$fPrintfArgPList $fShowADate $fShowASpan $fEqADate $fOrdADate $fIxADate $fEqASpan $fOrdASpan $fIxASpanAmountAAmountRWAccPairAccountingReadOnly AccountingRWAcc EnvironmentEnveLedger eAccountseDateeBodyeName FullLedgerflLedger flAccounts FixedLedgerlBals lLogEntriesLedgerRW UNSAFE_Ledger lUNSAFE_BalslUNSAFE_LogEntriesLedgerlBounds lReadEntrylAccountHistorylFix lunsafeFix LedgerBounds LedgerIndexEntityLogEntryLogEntryLTxLComment BalancingTx txComment txRemains txPostingsTx UNSAFE_TxtComment tPostingsInternalPostingPosting AccountsMap AccountNameAccountNUNSAFE_AccountNFullAccountNameFANfEntityfAccount EntityName AssetName AccountNumberswapFANsortedAccountNamesinternalAccountNumber balanceTxfixed ledgerBoundsreadEntryForNumberaccountsNumbers timeInterval accountNumbernameErrreadEntryForName uNSAFE_atuNSAFE_addToBalanceuNSAFE_carryOver$fFractionalRWST $fNumRWST $fOrdRWST$fEqRWST $fAccPairlw $fMonoidm$fLedgerFixedLedger$fLedgerLedgerRW$fIsStringAccountName$fPrintfArgAccountName$fEqFullAccountName$fOrdFullAccountName$fShowFullAccountName$fGenericFullAccountName$fEqAccountName$fOrdAccountName$fShowAccountName$fShowTx $fGenericTx$fGenericLogEntry$fShowLogEntryTransfertx closingTxfromTo fromToLimit transferAllcurrentBalancesollhaben balanceAt balancesSincecurDateonceAt onceEvery atYearEnd onlyAfterschedulelogMsg logLedger singleLog singleResult InterestRateIRiRateiSource FixedPaymentfPaymentfStartfOffsetfPeriodfSourcefSinkfComment LiquiditylFromlTo lPaymentsLoan lPrincipallPType lPaymentAcclLoanAcc lInterestlStartlPeriod PaymentTypeLinearAnnuityTransactionalAccounttaCredittaDebittaAcctaPeriodAssethandledurationannuityinterestcurrentInterest interestTx$fAssetFixedPayment$fAssetLiquidity $fAssetLoan$fAssetTransactionalAccount$fShowPaymentTypenominalAccounts bodyMonthlyEntityentName entAssetsentMonthlyActionentBodyWorldwLifewEntitessimplegeneratewithRWTevalRWT checkTransactionalAcountSymmetryreadBodywithBody AutoKostenakPrivat akGewerbeakGewerbeLeasing FirmenWagenPauschal FahrtenbuchPrivatAuto AutoMonatlaKmPrivatOhneArbeitsfahrtenaKmArbeitsstaette aKmGeschaeftl aArbeitsTage aFixKostenaLeasingaSpritKostenProKm aListenPreis aFirmenWagenGewerbe gwAngestellte gwTreibender gwHebesatzgwMonatlMietkostengwWaegenGmbHgGewerbeNatuerlichePersonpGeburtpGewerbekinderMitKindergeldImHaushaltkinderMitKindergeldlandOderForstwirt pSplittingkrankenUndPflegeOhneZuschuesse%krankenUndPflegeOhneZuschuessePartnerkinderFreibetragsVerdopplungpWagenpBruttoGehaltMtlpLohnsteuerMtlpVersicherungsPflicht$pAuswaertigeKinderInBerufsausbildungsolidaritaetsFaktor giroKontoentfernungsPauschalekmPrivatMonatlgeldwerterVorteilMonatlgesamtKostenAutokostenAutoMonatlverlustVortragsKontenvirtuellsteuerlicheVerlustVortraege verlustAbzugnachVerlustAbzug$fShowFirmenWagen $fShowAuto$fShowNatuerlichePerson $fShowGewerbe GewerbeSteuerGWStgwGewinn gwMessbetraggwSteuer BetragGWROAccGWRO BetragGWRWAccGWRWBetragGWAccGWGewerbetreibendergwStFreibetrag gewerbeGewinnsonstigerUeberschussmieteUnbeweglichmieteBeweglich schuldZinsenjahresErgebnisgewerbeAccountsgewerbeErgebnisAccountsjahresErgebnis'keineGewerbeSteuer gwMesszahl gewerbeErtragabrundenAuf100hinzuRechnungen kuerzungen gewerbeSteuer runGewerbe lohnKostenMtlgewerbeMonatlichautoGewerbeMtl$fShowGewerbeSteuerverdeckteGewinnausschuettungenverdeckteEinlagengewinnVerlustVortraegekoerperschaftSteuer$fGewerbetreibenderGmbH $fBodyGmbH VarBetrag VarBetragROVarianteVmitKinderFreibetragteileinkuenfteVerfahren riesterRentevorsorgeaufwendungenAlteRegelBetragROAccNatROBetragRWAccNatRWBetragAccNatprivatVermoegen ertragsKonteneinkuenfteAusGewerbebetriebsteuerfreieEinnahmenuebrigeSummeDerEinkuenfte arbeitslohn4werbungskostensNichtSelbststaendigeArbeitOhneFahrtenausserordentlicheEinkuenfte7einkuenfteAusBeteiligungenAnKapitalgesellschaftenKapEst1einkuenfteAusBeteiligungenAnKapitalgesellschaften+sonstigeEinkuenfteAusKapitalvermoegenKapEst%sonstigeEinkuenfteAusKapitalvermoegenprivateVerausserungsgeschaefteerstattungsUeberhaengeaufwandsKonten lohnSteuer%altersvorsorgeAufwendungenEigenanteilriesterRentenEinzahlung+altersvorsorgeAufwendungenArbeitgeberAnteil*krankenundPflegeversicherungBasisbeitraege,sonstigeVorsorgeAufwendungOhneBasisbeitraegeprivatAusgaben kinderGeldalterjahrInDemManSoAltWird splitFaktoreinkommenSteuer(einkuefteAusNichtSelbststaendigerArbeit'summeDerEinkuenfteuebrigeSummeDerEinkuenfte'einkommenSteuerVariantesolidaritaetsZuschlaggewStErmaessigung steuerBetragtestSteuerBetragabgeltungsSteuerzuVersteuerndesEinkommenmuteaussergewoehnlicheBelastungensonderAusgabenallgemeineSonderAusgabenaltersvorsorgeAufwendungensonstigeVorsorgeAufwendung%entlastungsbetragfuerAlleinerziehendekinderFreibetragkinderGeldAnrechnungausbildungsKostenkinderFreibetragUndGeldaltersentlastungsBetragaltersentlastungsSaetze$fBoundedVariante $fEqVariante $fOrdVariante $fIxVariante$fShowVariante sozialAbgabengehalt autoPrivatMtl$fBodyNatuerlichePerson$$fGewerbetreibenderNatuerlichePersonScaleGroupRow writeHtml toHtmlTable monthClassrowHtmllogHtmlcssjs indexPagetoVarscaletransactionRow renderTabletoRow to2DTable $fToJSONADate$fToJSONDecimalRaw $fToJSONTx$fToJSONLogEntry$fToJSONFullAccountName$fToJSONFullLedgerstartexample1 facebookE facebookGmbHfacebookmarkZuck markZuckNatcarmarkZuckActionfacebookActionir2 verrechZinsdUNSAFE_Monthsghc-prim GHC.TypesIntbothMDouble$Decimal-0.4.2-2gsM6lueGmFDxWjVnNU6AD Data.DecimalDecimalbaseGHC.ArrinRangeGHC.NumNum UNSAFE_ADateforSpan2forSpan1showsDGHC.Base++GHC.Listfilterzip Data.Tuplefstsndmap$ Control.MonadguardjoinMonad>>=>>returnfailFunctorfmap<$ GHC.ClassesOrd>=minmax><<=compareGHC.ShowShow showsPrecshowshowListIxrangeindex rangeSizeControl.Monad.FixMonadFixmfix Data.StringIsString fromString Applicativepure<*>*><* Data.Foldablefoldrlengthnullfoldlfoldl'foldl1sumproductfoldr1maximumminimumelemData.TraversablemapMsequenceMonoidmemptymappendmconcatMaybeNothingJustOrderingLTEQGTGHC.RealRatioRationalnormalizeDecimaleitherFromRational*.allocatedivideroundTodecimalConvertunsafeDecimalConvertrealFracToDecimal DecimalRaw decimalPlacesdecimalMantissa Data.Functor<$> Data.Monoid<>String array-0.5.1.1 Data.Array.IO hPutArray hGetArrayData.Array.IO.InternalsIOUArrayData.Array.Basethawfreeze mapIndicesmapArray getAssocsgetElems writeArray readArray newListArrayMArray getBoundsnewArray newArray_Arrayarraybounds listArray!indiceselemsassocs accumArray//accumixmap GHC.IOArrayIOArray Alternativeemptymany<|>some MonadPlusmzeromplus Text.PrintferrorBadArgumenterrorMissingArgumenterrorShortFormaterrorBadFormatperrorformatRealFloat formatInteger formatInt formatString formatCharvFmthPrintfprintf PrintfType HPrintfType PrintfArg formatArg parseFormatIsChartoCharfromCharFormatAdjustment LeftAdjustZeroPad FormatSignSignPlus SignSpace FieldFormatfmtWidth fmtPrecision fmtAdjustfmtSign fmtAlternate fmtModifiersfmtChar FormatParse fpModifiersfpCharfpRestFieldFormatterModifierParser Data.RatioapproxRationalControl.Monad.IO.ClassMonadIOliftIO Data.ListisSubsequenceOfmfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM mapAccumR mapAccumLforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipList Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarrfirstsecond***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonad ArrowLooploopControl.Category>>><<<Data.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsum sequence_forM_mapM_DualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductFirstgetFirstLastgetLastAltgetAlt Data.OldListunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.Ord comparingDown Data.Function&onfixvoid Text.Show showListWith denominator numerator% showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreaksplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailunconshead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeswapuncurrycurryflip.constidapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA2liftA<**>transformers-0.5.2.0Control.Monad.Trans.Class MonadTranslift mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.RWS.ClassMonadRWSControl.Monad.Reader.Classasks MonadReaderasklocalreaderControl.Monad.State.Classgetsmodify'modify MonadStateputgetstateControl.Monad.Writer.Classcensorlistens MonadWritertellwriterlistenpassControl.Monad.Trans.RWS.StrictRWSTrunRWSTRWSrwsrunRWSevalRWSexecRWSmapRWSwithRWSevalRWSTexecRWSTmapRWSTwithRWST+-*negate