Blog

exchangealgebra を Hackage に登録

自作の Haskell ライブラリ exchangealgebra を Hackage に公開しました. 簿記を代数的に扱い, 経済シミュレーションの最小単位として使うためのライブラリです. チュートリアルは関連論文の正式公表後に書く予定です.

はじめに

自作の Haskell ライブラリ exchangealgebra を Hackage に登録しました. この投稿はその告知のみで, チュートリアル的な使い方は関連論文を正式公表してから別記事として書く予定です.

ソースコードと README は GitHub にあります.

Exchange Algebra とは

exchangealgebra は出口 弘 先生が提唱した Exchange Algebra を Haskell で実装したライブラリです. 簿記の仕訳をスケール付きの基底代数の要素として扱うことで, 仕訳・締め・振替・シミュレーションを関数合成と射影で書けるようにします.

理論の詳細はチュートリアル記事で改めて扱うので, ここではモジュール構成の概観だけ書いておきます.

モジュール構成

公開モジュールは大きく 3 層に分かれています.

Algebra 層 (基盤):

Journal 層 (メタデータ付き仕訳):

Simulate / IO 層:

詳細とインポートの典型パターンは README を参照してください.

インストール

Stack の extra-deps に固定します.

# stack.yaml
extra-deps:
  - exchangealgebra-0.4.0.0
# package.yaml
dependencies:
  - exchangealgebra

GHC 9.10 (Stackage lts-24.4 でテスト), Cabal 3.0 以降が必要です. Chart / Chart-cairo を経由して cairo / pango / freetype が必要なので, macOS では brew install cairo pango が要ります.

未リリースのリビジョンを使いたい場合は Git の特定コミットを extra-deps に指す方法もあります (詳細は README).

サンプルの動かし方

examples/ ディレクトリ以下に動くサンプルが揃っています. リポジトリ全体を clone してもよく, degitexamples/ だけ抜き出すこともできます.

git clone https://github.com/yakagika/ExchangeAlgebra.git
cd ExchangeAlgebra
stack build
stack exec -- sim1        # 100 期シミュレーション
stack exec -- ebex1       # 入門用の簿記例
stack exec -- ripple      # 10 エージェントの波及効果
stack exec -- cge         # CGE モデル

サンプルのカタログと前提 (Python プロット用の uv 等) は examples/README にまとめてあります.

このライブラリを使った研究

本ライブラリはプレプリント Accounting State Space as the Minimal Unit for Economic Agent-Based Modeling: Advancing Ripple Effect Analysis in Real-Time Economy (Akagi, 2026, Research Square preprint v1) で会計計算をベースとした経済ABMを提案しています. 引用情報はリポジトリの CITATION.cff から GitHub の “Cite this repository” 経由で取れます.

今後

ライセンス

MIT と Open World License (OWL) のデュアルライセンスです. 詳細はリポジトリの LICENSE を参照してください.

ce0f13b2-4a83-4c1c-b2b9-b6d18f4ee6d2