Pragmas refers to flags or directives which modify the behavior of the language itself. These typically enable or disable some mode or feature.
Pragmas are activated using the LANGUAGE directive in the form.
{-# LANGUAGE pragma[,pragma]* #-}
Multiple pragmas may be enabled within a single directive (but that should be a cohesive grouping of pragmas).
Derive handlers for types usable for generic programming..
Enable definition of derivation as extension to existing type.