[String]

"This type is a compromise. Questions will often be the singleton list, but allowing a list of strings allows hierarchical schemes such as ghc-pkg shake, ghc-pkg base etc. The answers are often singleton lists, but sometimes are used as sets - for example the list of packages returned by ghc-pkg."



addOracle ["ghc"] $ return ["7.2.1"] askOracle ["ghc"]

newtype GhcVersion = GhcVersion () deriving (Show,Typeable,Eq,Hashable,Binary,NFData) addOracle $ \GhcVersion{} -> return "7.2.1" askOracleWith (GhcVersion ()) ""

[String]

validStored :: key -> value -> IO Bool

validStored key value = do v return False -- not stored, so doesn't match Just v -> return $ v == value

storedValue :: key -> IO (Maybe value) storedValue = lookupMyKey