During elaboration different kind of evaluation strategies may be
needed.
- top vs. local scope.
- On equality type-checking, see [abstract](https://github.com/anjapetkovic/anjapetkovic.github.io/blob/master/talks/2021-06-17-TYPES2021/abstract.pdf)
- To avoid boilerplate in the cabal file, one could use [common stanzas](https://vrom911.github.io/blog/common-stanzas). At the moment, I'm using cabal-edit to keep the bounds and this tool do not support stanzas. So be it.
- Using MultiParamTypeClasses to allow me deriving multi instances in one line.