
At a tangent to what Krasimir said:
The only visible change that is required is to replace hs-source-dir field to hs-source-dirs where the latter will accept a list of directories. The parser can still accept hs-source-dir for backward compatibility.
I was thinking yesterday about whether it would be possible to extend Cabal's parser to allow different spellings for the individual field names in the .cabal file? Krasimir's example of backward-compatibility is one use-case. For myself, I was wondering about internationalisation, e.g. "license" is spelled "licence" in English, "author" is spelled "auteur" in French, etc. AFAICS, it would be reasonably straightforward to change the type of StanzaField { fieldName :: String, ... } to StanzaField { fieldName :: [String], ... } Regards, Malcolm