I am wondering why Aeson and QuickCheck instances are in a separate module instead of enabled via CPP, is there a design reason for the current layout?
e.g. it is possible to guard blocks of code that import and define the instances like so (here using transformers as an example, but equally applicable to Aeson / QuickCheck)
I am wondering why Aeson and QuickCheck instances are in a separate module instead of enabled via CPP, is there a design reason for the current layout?
e.g. it is possible to guard blocks of code that import and define the instances like so (here using
transformers
as an example, but equally applicable to Aeson / QuickCheck)https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/phases.html#standard-cpp-macros or define your own constant.
Would you welcome a PR removing the orphan modules and using CPP like this?