withBuilderKey :: Builder -> String
withBuilderKey b = case b of
    Ar _       -> "--with-ar="
    Ld         -> "--with-ld="
    Cc  _ _    -> "--with-gcc="
    Ghc _ _    -> "--with-ghc="
    Alex       -> "--with-alex="
    Happy      -> "--with-happy="
    GhcPkg _ _ -> "--with-ghc-pkg="
    HsColour   -> "--with-hscolour="
    _          -> error $ "withBuilderKey: not supported builder " ++ show b

-- Expression 'with Alex' appends "--with-alex=/path/to/alex" and needs Alex.
withBuilderKey :: Builder -> String
withBuilderKey b = case b of
    Ar _       -> "--with-ar="
    Ld         -> "--with-ld="
    Cc  _ _    -> "--with-gcc="
    Ghc _ _    -> "--with-ghc="
    Alex       -> "--with-alex="
    Happy      -> "--with-happy="
    GhcPkg _ _ -> "--with-ghc-pkg="
    HsColour   -> "--with-hscolour="
    _          -> error $ "withBuilderKey: not supported builder " ++ show b

-- Expression 'with Alex' appends "--with-alex=/path/to/alex" and needs Alex.
withBuilderKey b = case b of
    Ar _       -> "--with-ar="
    Ld         -> "--with-ld="
    Cc  _ _    -> "--with-gcc="
    Ghc _ _    -> "--with-ghc="
    Alex       -> "--with-alex="
    Happy      -> "--with-happy="
    GhcPkg _ _ -> "--with-ghc-pkg="
    HsColour   -> "--with-hscolour="
    _          -> error $ "withBuilderKey: not supported builder " ++ show b

-- Expression 'with Alex' appends "--with-alex=/path/to/alex" and needs Alex.