+data Option
+ = FileOption -- an entry that _contains_ filename(s) / filepaths.
+ String -- a non-filepath prefix that shouldn't be transformed (e.g., "/out="
+ String -- the filepath/filename portion
+ | Option String
+
+showOptions :: [Option] -> String
+showOptions ls = unwords (map (quote.showOpt) ls)
+ where
+ showOpt (FileOption pre f) = pre ++ dosifyPath f
+ showOpt (Option s) = s
+
+\end{code}
+
+
+%************************************************************************
+%* *
+\subsection{Running an external program}
+%* *
+%************************************************************************
+
+
+\begin{code}
+runUnlit :: [Option] -> IO ()