Contextual Abstractionsで様々なコンテキストをうまく抽象化する

プログラミングでは様々な「コンテキスト
」を扱う必要が出てきます。コンテキストをうまく扱えないと冗長な記述が必要になったり、コンテキストが複雑になりすぎて混乱を招いたりします。特にコンテキストの引き回し
は様々なプログラミング言語やフレームワークで出てくるパターンですが、安易に使うと複雑性、冗長性の増大や密結合等さまざまな問題を引き起こすことが知られています。しかしScala 3の目玉機能であるContextual Abstractions(コンテキスト抽象化) を使えばこの問題を鮮やかに解決できます。
本記事ではContextual Abstractions
がなぜコンテキストをうまく扱うことができるのかを説明したいと思います。