[Haskell-cafe] SYB and opaque types