Introducing types to allow flowing compilation settings to the application

Will undo.