type Hoge = Hoge は何なのか
type 型名 = コンストラクタ名 | コンストラクタ名 | ...
のように、型の宣言は行われる
右辺は、左辺で指定した型の値を返すようなコンストラクタの宣言と言える
型名とコンストラクタ名を同名にすることができる
type ProcessId = ProcessId
最初は理解するのが難しいが
repl
https://gyazo.com/5394cf24fe8c92eed51475a7f620c6be
なので、2行目の評価結果は、
1行目の左辺で指定した、ProcessIdという名前の型の値を、
ProcessIdというコンストラクタが返している
ということになる
ややこしいが、文法上は
値を書くべきところであればコンストラクタ
型名を書くべきところであれば型名
なので、コンパイラにとってはややこしくない
我々人間も、その単語が式なのかアノテーションなのかを気をつければ読めるとおもうmoyamin.icon