Linear Haskell の現在と未来──線型型で Haskell のリソース管理はどう変わるか by konn

関数型まつり2025
50分

Linear Haskell の現在と未来──線型型で Haskell のリソース管理はどう変わるか

mr_konn konn mr_konn

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 理論

セッションの概要

Haskell では、 GHC 9.0 から -XLinearTypes 言語拡張が使えるようになり、線型型によるリソース管理に敏感な API を定義できるようになりました。
線型型は、Rust の所有権システムに類似した型システムであり、引数をきっかり一回消費する関数やデータ型を定義し、コンパイル時にリソースのリークがないか型検査によりチェックできるようになります。応用例は多くありますが、たとえば、純粋な可変配列や並列処理、use-after-free のないGC外アロケーションDestination-Passing Style による効率的なデータ初期化、より型安全なストリーム処理、他言語とのリソースの安全な受け渡しなどがより型安全に行えるようになります。

本講演では、線型型が有効化された Haskell = Linear Haskell により新しくどのようなプログラムが書けるようになり、Haskell による実用的なソフトウェア開発でどのように役立つのかについて、時折 Rust と比較などしつつお話します。また、現在議論が行われている Linear Constraints や Zero-Copy Compact Regions が導入された場合、未来の Linear Haskell がどう変わっていくのかについても簡単に紹介したいと思います。

Keywords

線型型、型理論、リソース管理、Linear Haskell、Haskell、Destination-Passing Style、Linear Constraints