データ(構造)に、ある性質を保証するってどうやるの?
たとえば、必ず昇順になってるリストとか。

普通?の言語だと、操作もコンストラクタも自在だから、
性質を保つ操作だけ提供して、コンストラクタは空か最初にソートすればいい。

でもHaskellだと、データ構築子使って、
性質に違反した値をリテラルみたいに書けちゃうのを禁止できなくない?