| Data.Map.Map and Data.Set.Set are exported abstractly, without
| exposing knowledge about their internal structure.
|| I cannot directly create my own class instances for them because of
| that. But I found that I can write Template Haskell code that could do
| that - those data types could be reified just fine.
I've created a ticket for this http://hackage.haskell.org/trac/ghc/ticket/4222.
In writing it down I identify several design questions that need to be addressed before we can "fix" this bug. Help welcome.
Simon