今回のテーマは、、、 newtypeとdata 以上のテーマで、参ります。 newtypeとdata 「1つの型を取り、何かにくるんで別の型にみせかける」 というような事がしたい場合、 dataではなく、newtypeキーワードを使う事ができます。 例えば、このような場合 Prelude> data MyList a = MyList { getList::[a] } これは以下のように書き換えられます。 Prelude> newtype MyList a = MyList { getList::[a] } こう書くと、何が嬉しいんでしょうか?? dataとnewtypeの違いを見ていきたいと思います。 newtypeの方が高速 型をくるむのにdataキーワードを使うと、 コンストラクタに包んだり、ほどいたりする度にオーバーヘッドがかかります。 しかし、newtypeはそもそも、それ用のキ