例えばC言語の場合は「公開ヘッダ」にData.Text.Textを定義して
「内部実装ヘッダ」にData.Text.Internalを定義して、
通常の利用者は公開ヘッダのみを用いてライブラリを使用でき、
特殊な利用者は内部実装ヘッダを用いてライブラリを使用できる。

だから今回のように「通常の利用者」が内部実装で使われている型を目にして混乱することはない。

でもHaskellでは「通常の利用者」に対しても内部実装ヘッダが公開されてしまうので、
今回のように内部実装を必要としない利用者に内部実装の型が公開されることで
:t の結果も内部実装向けの型を返すようになり混乱を招いている。

以上。