1. はじめに Haskell/GHCの型システムを使って、「混ぜることのできない数」のグループを手軽に作る方法を紹介します。 Haskellの基本的な機能と、GHC拡張を1つだけ使用しています。 なお、ここで紹介する方法は、Don Stewartさんが昔に、"Haskell in the Large"という資料(現在、オリジナル資料はリンク切れ)で紹介していたものを元にしています。 また、本記事で出てくるnewtype宣言やphantom型や数値型については、以下の記事などが参考になります。 すごいH本で見落としがちだが実は重要な機能:newtype 本当はすごい newtype で、出たー!幽霊型だー!(Phantom Type) Haskellらしさって?「型」と「関数」の基本を解説! (数値型と型クラスについて簡単に) では、順に試しながら機能を追加していきます。 最初に基本的な型