packages feed

exchangealgebra-0.6.0.0: src/ExchangeAlgebra/Journal.hs

{- |
    Module     : ExchangeAlgebra.Journal
    Copyright  : (c) Kaya Akagi. 2018-2026
    Maintainer : yakagika@icloud.com

    Import "ExchangeAlgebra.Journal.Core" for generic journal operations and
    "ExchangeAlgebra.Accounting.Exchange" for accounting operations.

    Released under the OWL license

    Package for Exchange Algebra defined by Hiroshi Deguchi.

    Exchange Algebra is an algebraic description of bookkeeping system.
    Details are below.

    <https://www.springer.com/gp/book/9784431209850>

    <https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/82987/1/0809-7.pdf>


-}

{-# LANGUAGE GADTs                      #-}
{-# LANGUAGE TypeSynonymInstances       #-}
{-# LANGUAGE FlexibleInstances          #-}
{-# LANGUAGE FlexibleContexts           #-}
{-# LANGUAGE PatternSynonyms            #-}
{-# LANGUAGE ViewPatterns               #-}
{-# LANGUAGE MultiParamTypeClasses      #-}
{-# LANGUAGE OverloadedStrings          #-}
{-# LANGUAGE BangPatterns               #-}
{-# LANGUAGE ExistentialQuantification  #-}

module ExchangeAlgebra.Journal
    ( customError
    , BaseClass(..)
    , Hat(..)
    , BaseForSingleHat(..)
    , HatBase(..)
    , Element(..)
    , AxisKey(..)
    , axisIsWildcard
    , AxisDecompose(..)
    , (.#)
    , Name
    , Subject
    , CountUnit(..)
    , Hashable(..)
    , Generic
    , HatVal(..)
    , HatBaseClass(..)
    , Redundant(..)
    , pattern (:@)
    , (.@)
    , Note(..)
    , NoteAxisKey(..)
    , NoteAxisPosting
    , Journal
    , pattern ExchangeAlgebra.Journal.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 ExchangeAlgebra.Algebra.Base
import ExchangeAlgebra.Algebra.Value.Class (HatVal(..))
import ExchangeAlgebra.Algebra.Core.Representation (Redundant(..), pattern (:@), (.@))
import ExchangeAlgebra.Journal.Core.Representation as ExchangeAlgebra.Journal
    ( Note(..)
    , 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
    )
import Prelude hiding (map)