@@ -1019,8 +1019,11 @@ parseArgs ("--dumpcases":n:ns) = DumpCases n : (parseArgs ns)
10191019parseArgs ("--codegen":n:ns) = UseCodegen (parseCodegen n) : (parseArgs ns)
10201020parseArgs ["--exec"] = InterpretScript "Main.main" : []
10211021parseArgs ("--exec":expr:ns) = InterpretScript expr : parseArgs ns
1022−parseArgs ("-XTypeProviders":ns) = Extension TypeProviders : (parseArgs ns)
1023−parseArgs ("-XErrorReflection":ns) = Extension ErrorReflection : (parseArgs ns)
1022+parseArgs (('-':'X':extName):ns) = case maybeRead extName of
1023+ Just ext -> Extension ext : parseArgs ns
1024+ -- Not sure what to do for the Nothing case
1025+ Nothing -> error ("Unknown extension " ++ extName)
1026+ where maybeRead = fmap fst . listToMaybe . reads
10241027parseArgs ("-O3":ns) = OptLevel 3 : parseArgs ns
10251028parseArgs ("-O2":ns) = OptLevel 2 : parseArgs ns
10261029parseArgs ("-O1":ns) = OptLevel 1 : parseArgs ns