:set -XMultiParamTypeClasses -XFunctionalDependencies :set -XFlexibleInstances -XTemplateHaskell