
Ah thanks. I had no idea the `App` pattern actually was bidirectional. I had tried the `Con’` pattern but that is only valid for deconstruction. Is there any way to tell in the docs whether a pattern is bidirectional?
On 12 Feb 2018, at 18:30, Ben Gamari
wrote: Development
writes: Hey guys I have a (hopefully quick) question.
With the new `Data.Typeable` and `Data.Reflection` in base 4.10 have we really lost the ability for users to compose `TypeRep`’s?
I was using `Data.Typeable` before (mainly `mkTyConApp`). But in the new base 4.10 I cannot find any way to achieve the same goal.
I have read the wiki page Typeable and Typeable/BenGamari and neither explicitly mentions the removal of `mkTyConApp` and similar facilities. In fact the latter mentions potential implementations for user constructed type applications twice with `mkTrApp` at the beginning of the page and `mkApp` at the end. Furthermore the documentation for `Typeable` (and `Reflection`) also never mentions the fact that this functionality was removed.
Indeed, as is noted in the changelog for base [1], mkTyConApp and friends were removed. mkTyConApp in particular allowed the construction of ill-kinded type representations so instead of emulating the previous behavior we rather opted to remove it.
If you were previously using these interfaces you almost certainly want to instead use the new type-indexed interface provided by Type.Reflection. In particular, you can use the App constructor in place of mkTyConApp.
Cheers,
- Ben
[1] https://hackage.haskell.org/package/base-4.10.1.0/changelog