module Hcompta.LCC.Compta where import Data.Eq (Eq) import Data.Map.Strict (Map) import Data.Text (Text) import Text.Show (Show) import Language.Symantic as Sym import Hcompta.LCC.Amount import Hcompta.LCC.Chart import Hcompta.LCC.Journal -- * Type 'Compta' -- -- NOTE: 'Compta' is recursively prepended to @ss@ in 'compta_modules' here, -- where it is possible. It is more simple than introducing some fix-point wrapping @ss@ -- to include 'Compta' later, especially because this fix-point -- would not be a type-level list like @ss@, hence not matching Symantic's API. data Compta src ss j = Compta { compta_chart :: Chart , compta_journals :: Journals j , compta_modules :: Sym.Modules src (Sym.Proxy (Compta src ss) ': ss) , compta_style_amounts :: Style_Amounts , compta_terms :: Terms -- , compta_code :: Map Name Text } deriving (Eq, Show) -- * Type 'Terms' type Terms = Map (Sym.Mod Sym.NameTe) Text