>>950
質問の意味がよく分からないが、
where じゃなくても、自分自身を再帰的に呼べばいいのでは?

directories :: FilePath -> [FilePath]
という型の関数を定義して、その中で、
1. 引数で渡されたパス内のコンテンツを列挙
2. そのうち、ディレクトリであるものを抽出
3. それらに directories 関数を適用
4. 1 と 3 の結果を結合して return

これじゃダメ?