References https://downloads.haskell.org/~ghc/7.8.2/docs/html/users_guide/other-type-extensions.html#universal-quantification http://blog.mno2.org/posts/2012-04-06-what-is-rank-n-types-in-haskell.html http://research.microsoft.com/en-us/um/people/simonpj/papers/higher-rank/putting.pdf