モジュールFoo.Barに
data Baz = ...
bazToQux :: Baz -> Qux
quxToBaz :: Qux -> Baz
みたいに定義する代わりにモジュールFoo.Bar.Bazに
data B = ...
toQux :: Baz -> Qux
fromQux :: Qux -> Baz
のようにすることをよくやる。
オブジェクト指向には直観的にわかりやすい名前空間という側面もあるけど、それをなぞっている。
本当はFoo.Bar.Bazという名前の型を用意したいのだけど、できないのでFoo.Bar.Baz.Bとしている。