Type and newtype

2 Type and newtype。さて、問題は、私に明確なニュータイプの素養があるかどうかだが。
ん〜、さっぱりだ。type はシノニムで newtype は新しい型をつくるのか。

type
type Name = String

こう書くと String 型がつかえるところでは Name 型もほぼ使えるらしい。どういうときに使うんだか。

newtype
newtype FirstName = FirstName String

始めの FirstName が型名で 2 番目の FirstName がコンストラクタ名で String がその引数の型?コンストラクタ名は型名と同じでなくてもよさげ。
data と似ているけど、これはこれで存在意義があるんだろうな。次のトピックは「data vs newtype」なので、何かわかるだろう。