cleanAction :: CleanFlags -> [String] -> GlobalFlags -> IO ()
cleanAction cleanFlags extraArgs _globalFlags =
  setupWrapper verbosity setupScriptOptions Nothing
               cleanCommand (const cleanFlags) extraArgs
  where
    verbosity = fromFlagOrDefault normal (cleanVerbosity cleanFlags)
    setupScriptOptions = defaultSetupScriptOptions {
      useDistPref = fromFlagOrDefault
                    (useDistPref defaultSetupScriptOptions)
                    (cleanDistPref cleanFlags),
      useWin32CleanHack = True
      }
cleanAction :: CleanFlags -> [String] -> GlobalFlags -> IO ()
cleanAction cleanFlags extraArgs _globalFlags =
  setupWrapper verbosity setupScriptOptions Nothing
               cleanCommand (const cleanFlags) extraArgs
  where
    verbosity = fromFlagOrDefault normal (cleanVerbosity cleanFlags)
    setupScriptOptions = defaultSetupScriptOptions {
      useDistPref = fromFlagOrDefault
                    (useDistPref defaultSetupScriptOptions)
                    (cleanDistPref cleanFlags),
      useWin32CleanHack = True
      }
cleanAction cleanFlags extraArgs _globalFlags =
  setupWrapper verbosity setupScriptOptions Nothing
               cleanCommand (const cleanFlags) extraArgs
  where
    verbosity = fromFlagOrDefault normal (cleanVerbosity cleanFlags)
    setupScriptOptions = defaultSetupScriptOptions {
      useDistPref = fromFlagOrDefault
                    (useDistPref defaultSetupScriptOptions)
                    (cleanDistPref cleanFlags),
      useWin32CleanHack = True
      }