型に別名を与える構文のための予約語である。本当に別名を用意するだけで、その性質や扱いに変化を与えることはない。純粋に可読性のための存在といえる。は新しい型を作る用途で使うことはできない。別名を割り当てるだけである。本来禁止したかった用法や無意味な計算が許されかねないということである。用途特化型を楽に定義したい」という夢は潰えた。内部的には既存の型を使って、それでも元の型と互いに区別されるような用途特化型を定義しようという手法である。例を見た方が早かろう。添字と距離を互いに区別される別々の型として定義し、特定の意味ある演算だけ明示的に実装したこのコードは正直微妙なところがあるが[2]、例としては十分だろう。区別されており、混同するとコンパイルが通らない。そのような演算はできない。次のような方法によって型を定義する手法のことである。デフォルトでは他の型から暗黙に変換できないような型を作る。ひとつだけ持ち、その型がベースとなる既存の型である。新たな型の値を作る方法を用意する。新たな型とベースとした型との間で相互に変換できるよう関数を用意するのが一般的。暗黙の型変換などを迂闊に実装しないよう注意すること。新たな型について、意味のある演算子や関数などを実装する。内部実装としては、ベースとした型での演算をそのまま再利用するのが一般的。ベースにした時刻型であれば、時刻同士の減算には意味があるが、加算や乗算、除算には意味がない。