たとえば物理単位を型で表現して計算可能にしようみたいなのは、依存型で実現できますよね
もうちょっとわかりやすい例にするなら、行列のサイズが演算ごとに自動的に定まるのと同じ原理を使えます
dot(Matrix<3, 2>, Matrix <2, 4>) が Matrix<3, 4> を返すみたいなことはできるし、 Physical<Kg(1), Meter(1)> / Physical<Second(-1)> が Physical<Kg(1), Meter(1), Second(-1)> を返したりもできる