diff --git a/shake-c.cabal b/shake-c.cabal
--- a/shake-c.cabal
+++ b/shake-c.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.18
 name: shake-c
-version: 0.1.0.0
+version: 0.3.0.0
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2018 Vanessa McHale
@@ -30,8 +30,7 @@
         Development.Shake.C
     hs-source-dirs: src
     default-language: Haskell2010
-    other-extensions: DeriveAnyClass DeriveGeneric DerivingStrategies
-                      GeneralizedNewtypeDeriving PatternSynonyms TypeFamilies
+    other-extensions: DeriveAnyClass DeriveGeneric
     ghc-options: -Wall
     build-depends:
         base >=4.3 && <5,
diff --git a/src/Development/Shake/C.hs b/src/Development/Shake/C.hs
--- a/src/Development/Shake/C.hs
+++ b/src/Development/Shake/C.hs
@@ -1,15 +1,11 @@
-{-# LANGUAGE DeriveAnyClass             #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE DerivingStrategies         #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE PatternSynonyms            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DeriveAnyClass #-}
+{-# LANGUAGE DeriveGeneric  #-}
 
 -- | This module provides functions for easy C builds of binaries, static
 -- libraries, and dynamic libraries.
 module Development.Shake.C ( -- * Types
                              CConfig (..)
-                           , CCompiler (ICC, GCC, Clang, GHC, Other, GCCStd, GHCStd, CompCert)
+                           , CCompiler (..) -- (ICC, GCC, Clang, GHC, Other, GCCStd, GHCStd, CompCert)
                            -- * Rules
                            , staticLibR
                            , sharedLibR
@@ -23,11 +19,6 @@
                            , staticLibA
                            , sharedLibA
                            , stripA
-                           -- * Oracle helpers
-                           , queryCC
-                           , queryCfg
-                           , examineCC
-                           , examineCfg
                            -- * Reëxports from "Language.C.Dependency"
                            , getCDepends
                            , getAll
@@ -67,14 +58,6 @@
     where withManufacturer "darwin" = "-apple-" ++ os
           withManufacturer _        = "-unknown-" ++ os
 
--- | Default @gcc@ available
-pattern GCCStd :: CCompiler
-pattern GCCStd = GCC Nothing
-
--- | Default @ghc@ available
-pattern GHCStd :: CCompiler
-pattern GHCStd = GHC Nothing Nothing
-
 -- | Get the executable name for a 'CCompiler'
 ccToString :: CCompiler -> String
 ccToString ICC            = "icc"
@@ -125,7 +108,7 @@
                | CompCert
                | ICC
                | Other String
-               deriving (Show, Eq, Generic, Typeable, Hashable, Binary, NFData)
+               deriving (Generic, Binary) -- Show, Eq, Generic, Typeable, Hashable, Binary, NFData)
 
 mapFlags :: String -> ([String] -> [String])
 mapFlags s = fmap (s ++)
@@ -136,32 +119,7 @@
                        , extras     :: [String] -- ^ Extra flags to be passed to the compiler
                        , staticLink :: Bool -- ^ Whether to link against static versions of libraries
                        }
-             deriving (Show, Eq, Generic, Typeable, Hashable, Binary, NFData)
-
-newtype CC = CC ()
-    deriving (Show, Eq)
-    deriving newtype (Typeable, Hashable, Binary, NFData)
-
-newtype Cfg = Cfg ()
-    deriving (Show, Eq)
-    deriving newtype (Typeable, Hashable, Binary, NFData)
-
-type instance RuleResult CC = CCompiler
-type instance RuleResult Cfg = CConfig
-
--- | Set a 'CCompiler' that can be depended on later.
-examineCC :: CCompiler -> Rules ()
-examineCC cc = void $ addOracle $ \(CC _) -> pure cc
-
-examineCfg :: CConfig -> Rules ()
-examineCfg cfg = void $ addOracle $ \(Cfg _) -> pure cfg
-
--- | Depend on the C compiler being used.
-queryCC :: Action ()
-queryCC = void $ askOracle (CC ())
-
-queryCfg :: Action ()
-queryCfg =void $ askOracle (Cfg ())
+             deriving (Generic, Binary) -- Show, Eq, Generic, Typeable, Hashable, Binary, NFData)
 
 -- | Rules for making a static library from C source files. Unlike 'staticLibR',
 -- this also creates rules for creating object files.
@@ -185,6 +143,7 @@
      -> CConfig
      -> Rules ()
 cBin cc sources bin cfg = bin %> \out -> binaryA cc sources out cfg
+-- TODO depend on config!!
 
 stripA :: CmdResult r
        => FilePath -- ^ Build product to be stripped
