Code simplification using lazy vals
CompileConfig doesn't need clone method
OptionConfig can be generated using OptionConfig.apply
Use import System.err instead of defining printerr()
Simplify code
Refactor