You could try something like
fnLookupTable :: IO [(String, String -> Int)]
fnLookupTable = do
confA <- getConfigA
confB <- getConfigB
return [("a", moduleAFn confA)
("b", moduleBFn confB)]
Now you pass the result of fnLookupTable around.
HTH,
--
Felipe.