packages feed

exchangealgebra-0.6.0.0: src/ExchangeAlgebra/Journal/Core.hs

{-# LANGUAGE PatternSynonyms #-}

-- | Annotate algebra entries with notes, combine journals, and select entries.
-- This Journal layer exposes generic operations from its private representation
-- (Definitions 10-12). It uses Algebra values without account classification.
-- Start with Note and Journal, then choose an operation from the table.
--
-- @
-- Question                         Operation
-- Attach a note to an Alg          .|
-- Combine journals                fromList, sigma
-- Read entries as an Alg           toAlg
-- Select notes or bases            projWithNote, projWithBase
-- Select an indexed note axis      filterByAxis
-- Replace whole notes              replaceNotes
-- @
--
-- Import this module qualified alongside "ExchangeAlgebra.Algebra.Core" for
-- generic operations. For accounts, also import "ExchangeAlgebra.Accounting.Account"
-- and "ExchangeAlgebra.Accounting.Exchange". "ExchangeAlgebra.Journal"
-- re-exports the generic Journal API.
module ExchangeAlgebra.Journal.Core ( Note(..)
                                    , HasTermAxis(..)
                                    , NoteAxisKey(..)
                                    , NoteAxisPosting
                                    , Journal
                                    , pattern Zero
                                    , mkJournal
                                    , (.|)
                                    , toAlg
                                    , toMap
                                    , fromMap
                                    , fromList
                                    , sigma
                                    , sigma2When
                                    , sigmaOn
                                    , sigmaOnFromMap
                                    , decTo
                                    , sigmaM
                                    , map
                                    , replaceNotes
                                    , projWithNote
                                    , projWithBase
                                    , projWithNoteBase
                                    , projWithBaseNetNorm
                                    , projWithNoteBaseNetNorm
                                    , filterWithNote
                                    , filterByAxis
                                    , postFromNetBy
                                    , gather
                                    ) where

import Prelude hiding (map)
import ExchangeAlgebra.Journal.Core.Representation ( Note(..)
                                                   , HasTermAxis(..)
                                                   , NoteAxisKey(..)
                                                   , NoteAxisPosting
                                                   , Journal
                                                   , pattern Zero
                                                   , mkJournal
                                                   , (.|)
                                                   , toAlg
                                                   , toMap
                                                   , fromMap
                                                   , fromList
                                                   , sigma
                                                   , sigma2When
                                                   , sigmaOn
                                                   , sigmaOnFromMap
                                                   , decTo
                                                   , sigmaM
                                                   , map
                                                   , replaceNotes
                                                   , projWithNote
                                                   , projWithBase
                                                   , projWithNoteBase
                                                   , projWithBaseNetNorm
                                                   , projWithNoteBaseNetNorm
                                                   , filterWithNote
                                                   , filterByAxis
                                                   , postFromNetBy
                                                   , gather
                                                   )