    module Distribution.Simple.UUAGC.AbsSyn where

    import Options
    import System.FilePath(normalise)

    data AGFileOption = AGFileOption {AGFileOption -> String
    filename :: String,
                                      AGFileOption -> [String]
    fileClasses :: [String],
                                      AGFileOption -> Options
    opts :: Options}

    data AGOptionsClass = AGOptionsClass {AGOptionsClass -> String
    className :: String, AGOptionsClass -> Options
    opts' :: Options}

    type AGFileOptions = [AGFileOption]

    lookupFileOptions :: FilePath -> AGFileOptions -> Options
    lookupFileOptions :: String -> AGFileOptions -> Options
    lookupFileOptions String
    s = (Options -> AGFileOption -> Options)
    -> Options -> AGFileOptions -> Options
    forall b a. (b -> a -> b) -> b -> [a] -> b
    forall (t :: * -> *) b a.
    Foldable t =>
    (b -> a -> b) -> b -> t a -> b
    foldl Options -> AGFileOption -> Options
    f Options
    noOptions
        where f :: Options -> AGFileOption -> Options
    f Options
    e (AGFileOption String
    s' [String]
    classes Options
    opt)
                  | String
    s String -> String -> Bool
    forall a. Eq a => a -> a -> Bool
    == (String -> String
    normalise String
    s')  = Options
    opt
                  | Bool
    otherwise            = Options
    e