Pretty Printer for textual version of Language (name) in DynFlags
I feel that the GHC API could benefit from a Show instance for Language in DynFlags.hs.
Currently, if we want to display the language being used we have to do something like
foo inf = case hmi_language inf of
Nothing -> Nothing
Just Haskell98 -> Just "Haskell98"
Just Haskell2010 -> Just "Haskell2010"
This is pretty much just the Show instance (over Maybe) and Haskell can derive it for us automatically: we just need to change deriving Enum
to deriving (Enum, Show)
. The above solution is not the most robust ever as if this data type is ever changed, this starts to form an incomplete pattern. If we have a catch all _
, GHC complains about overlapping patterns. Easily solved with show <$> hmi_language inf
.