> import Distribution.PackageDescription (PackageDescription(buildDepends))
> import Distribution.Setup (ConfigFlags)
> import Distribution.Simple (UserHooks(confHook),
> defaultMainWithHooks, defaultUserHooks,
> Dependency(..), VersionRange(..))
> import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
> import qualified System.Info (os)
> main :: IO ()
> main = defaultMainWithHooks myHooks
> myHooks :: UserHooks
> myHooks = addOptionalUnixDependencyHook defaultUserHooks
> addOptionalUnixDependencyHook :: UserHooks -> UserHooks
> addOptionalUnixDependencyHook hooks =
> hooks { confHook = confHook hooks . addOptionalUnixDependency }
> addOptionalUnixDependency :: PackageDescription -> PackageDescription
> addOptionalUnixDependency desc =
> case System.Info.os of
> "mingw32" -> desc
> _ -> addDependency (Dependency "unix" AnyVersion) desc
> addDependency :: Dependency -> PackageDescription -> PackageDescription
> addDependency dep desc = desc { buildDepends = dep : buildDepends desc}