型と型クラス

9.3 型の別名と付け替え

type宣言とnewtype宣言について


type宣言は分かりやすいですね。C言語でいうところのtypedefのようなノリですね。

type MyInt = Int

myData :: MyInt
myData = 17

type MyArray a = [a]
type MyIntArray = MyArray MyInt

myArray :: MyIntArray
myArray = [1, 2, 3, 4]

main = do print myData
          print myArray


でもnewtype宣言は一度読んだときはよく分からなかったです。
結局のところdata宣言と同じなんですね。


…本文中にあるStackNT a型を使ったサンプルを作ろうとしたらうまくいかない。
今日は時間切れ(泣)。