diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,7 @@
+## Changes in 0.3.3
+ - `Typeable` instances for `(~)`, `Any`, `Constraint`, `CSigset`, `Handler`,
+   `Opaque`, `SPEC`, and every promotable data constructor in `base`
+
 ## Changes in 0.3.2
  - `Storable (Complex a)` instance no longer requires a `RealFloat a`
    constraint if using `base-4.4` or later
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -34,7 +34,7 @@
  * `Show` instance for `Fingerprint`
  * `Storable` instance for `Complex` and `Ratio`
  * `Traversable` instance for `Either`, `(,)` and `Const`
- * `Typeable` instance for most data types and typeclasses (when possible)
+ * `Typeable` instance for most data types, typeclasses, and promoted data constructors (when possible)
 
 ## Supported versions of GHC/`base`
 
diff --git a/base-orphans.cabal b/base-orphans.cabal
--- a/base-orphans.cabal
+++ b/base-orphans.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.1.2.
+-- This file has been generated from package.yaml by hpack version 0.3.2.
 --
 -- see: https://github.com/sol/hpack
 
 name:                base-orphans
-version:             0.3.2
+version:             0.3.3
 synopsis:            Backwards-compatible orphan instances for base
 homepage:            https://github.com/haskell-compat/base-orphans#readme
 bug-reports:         https://github.com/haskell-compat/base-orphans/issues
diff --git a/src/Data/Orphans.hs b/src/Data/Orphans.hs
--- a/src/Data/Orphans.hs
+++ b/src/Data/Orphans.hs
@@ -17,6 +17,11 @@
 {-# LANGUAGE PolyKinds #-}
 #endif
 
+#if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < 710
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE NullaryTypeClasses #-}
+#endif
+
 {-# OPTIONS_GHC -fno-warn-deprecations #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
@@ -64,6 +69,7 @@
 import GHC.ForeignPtr
 import GHC.GHCi
 import GHC.TypeLits
+import System.Posix.Internals
 #endif
 
 #if !(MIN_VERSION_base(4,6,0))
@@ -85,11 +91,18 @@
 import Data.Ix
 import Data.Type.Coercion
 import Data.Type.Equality
-import GHC.Exts
+import Data.Typeable.Internal
+import GHC.Exts as Exts
 import GHC.IO.BufferedIO
 import GHC.IO.Device (IODevice, RawIO)
+import GHC.IO.Handle
+import GHC.IO.Handle.Types hiding (BufferList, HandleType)
 import GHC.IP
 import Text.Printf
+
+# if defined(mingw32_HOST_OS)
+import GHC.ConsoleHandler as Console
+# endif
 #endif
 
 #if !(MIN_VERSION_base(4,8,0))
@@ -101,7 +114,7 @@
 
 #if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
-import Control.Exception
+import Control.Exception as Exception
 import Control.Monad.ST.Lazy as Lazy
 import Data.Char
 import Data.Data as Data
@@ -112,19 +125,20 @@
 import Foreign.C.Types
 import Foreign.Marshal.Pool
 import Foreign.Storable
+import GHC.Base
 import GHC.Conc
 import GHC.Desugar
 import GHC.IO.Buffer
-import GHC.IO.Device (IODeviceType)
+import GHC.IO.Device (IODeviceType(..))
 import GHC.IO.Encoding
+import GHC.IO.Exception as Exception
 import GHC.IO.Handle.Types (BufferList, HandleType)
 import GHC.ST
 import System.Console.GetOpt
 import System.IO
-import System.IO.Error
 import Text.ParserCombinators.ReadP
 import Text.ParserCombinators.ReadPrec as ReadPrec
-import Text.Read
+import Text.Read as Read
 
 # if defined(mingw32_HOST_OS)
 import GHC.IO.Encoding.CodePage.Table
@@ -290,8 +304,8 @@
 
 -----
 
-instance Generic Any where
-    type Rep Any = D1 D1Any (C1 C1_0Any (S1 S1_0_0Any (Rec0 Bool)))
+instance Generic Monoid.Any where
+    type Rep Monoid.Any = D1 D1Any (C1 C1_0Any (S1 S1_0_0Any (Rec0 Bool)))
     from (Any a) = M1 (M1 (M1 (K1 a)))
     to (M1 (M1 (M1 (K1 a)))) = Any a
 
@@ -913,7 +927,7 @@
 
 instance Datatype D1Maybe where
     datatypeName _ = "Maybe"
-    -- As of base-4.7.0.0, Maybe is actually located in GHC.Base. 
+    -- As of base-4.7.0.0, Maybe is actually located in GHC.Base.
     -- We don't need to worry about this for the versions of base
     -- that this instance is defined for, however.
     moduleName   _ = "Data.Maybe"
@@ -1198,9 +1212,9 @@
 #if __GLASGOW_HASKELL__ < 710
 deriving instance Typeable  All
 deriving instance Typeable  AnnotationWrapper
+deriving instance Typeable  Monoid.Any
 deriving instance Typeable1 ArgDescr
 deriving instance Typeable1 ArgOrder
-deriving instance Typeable  Monoid.Any
 deriving instance Typeable  BlockReason
 deriving instance Typeable1 Buffer
 deriving instance Typeable3 BufferCodec
@@ -1222,7 +1236,7 @@
 deriving instance Typeable  Data.Fixity
 deriving instance Typeable  GeneralCategory
 deriving instance Typeable  HandlePosn
-deriving instance Typeable1 Handler
+deriving instance Typeable1 Exception.Handler
 deriving instance Typeable  HandleType
 deriving instance Typeable  IODeviceType
 deriving instance Typeable  IOErrorType
@@ -1231,6 +1245,7 @@
 deriving instance Typeable  Lexeme
 deriving instance Typeable  Newline
 deriving instance Typeable  NewlineMode
+deriving instance Typeable  Opaque
 deriving instance Typeable1 OptDescr
 deriving instance Typeable  Pool
 deriving instance Typeable1 Product
@@ -1248,6 +1263,7 @@
 deriving instance Typeable  CodePageArrays
 deriving instance Typeable2 CompactArray
 deriving instance Typeable1 ConvArray
+deriving instance Typeable  Console.Handler
 # endif
 
 # if MIN_VERSION_base(4,3,0)
@@ -1290,6 +1306,7 @@
 # endif
 
 # if MIN_VERSION_base(4,6,0)
+deriving instance Typeable  CSigset
 deriving instance Typeable1 Down
 deriving instance Typeable  ForeignPtrContents
 deriving instance Typeable  Nat
@@ -1297,6 +1314,10 @@
 deriving instance Typeable  Symbol
 # endif
 
+# if MIN_VERSION_ghc_prim(0,3,1)
+deriving instance Typeable  SPEC
+# endif
+
 # if MIN_VERSION_base(4,7,0)
 deriving instance Typeable FieldFormat
 deriving instance Typeable FormatAdjustment
@@ -1372,6 +1393,7 @@
 deriving instance Typeable (:+:)
 deriving instance Typeable (:*:)
 deriving instance Typeable (:.:)
+deriving instance Typeable Exts.Any
 deriving instance Typeable ArrowMonad
 deriving instance Typeable Kleisli
 deriving instance Typeable M1
@@ -1435,6 +1457,230 @@
 deriving instance Typeable TestEquality
 deriving instance Typeable Traversable
 deriving instance Typeable Typeable
+
+-- Constraints
+deriving instance Typeable (~)
+deriving instance Typeable Constraint
+
+-- Promoted data constructors
+deriving instance Typeable '()
+deriving instance Typeable '(,)
+deriving instance Typeable '(,,)
+deriving instance Typeable '(,,,)
+deriving instance Typeable '(,,,,)
+deriving instance Typeable '(,,,,,)
+deriving instance Typeable '(,,,,,,)
+deriving instance Typeable '(,,,,,,,)
+deriving instance Typeable '(,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
+deriving instance Typeable '[]
+deriving instance Typeable '(:)
+deriving instance Typeable '(:%)
+deriving instance Typeable '(:+)
+deriving instance Typeable 'AbsoluteSeek
+deriving instance Typeable 'All
+deriving instance Typeable 'AlreadyExists
+deriving instance Typeable 'Any
+deriving instance Typeable 'AppendHandle
+deriving instance Typeable 'AppendMode
+deriving instance Typeable 'BlockedIndefinitelyOnMVar
+deriving instance Typeable 'BlockedIndefinitelyOnSTM
+deriving instance Typeable 'BlockedOnBlackHole
+deriving instance Typeable 'BlockedOnException
+deriving instance Typeable 'BlockedOnForeignCall
+deriving instance Typeable 'BlockedOnMVar
+deriving instance Typeable 'BlockedOnOther
+deriving instance Typeable 'BlockedOnSTM
+deriving instance Typeable 'ClosedHandle
+deriving instance Typeable 'ClosePunctuation
+deriving instance Typeable 'ConnectorPunctuation
+deriving instance Typeable 'Const
+deriving instance Typeable 'Control
+deriving instance Typeable 'CRLF
+deriving instance Typeable 'CurrencySymbol
+deriving instance Typeable 'DashPunctuation
+deriving instance Typeable 'Deadlock
+deriving instance Typeable 'DecimalNumber
+deriving instance Typeable 'Denormal
+deriving instance Typeable 'Directory
+deriving instance Typeable 'DivideByZero
+deriving instance Typeable 'Down
+deriving instance Typeable 'Dual
+deriving instance Typeable 'EnclosingMark
+deriving instance Typeable 'Endo
+deriving instance Typeable 'Exception.EOF
+deriving instance Typeable 'EQ
+deriving instance Typeable 'ErrorOnCodingFailure
+deriving instance Typeable 'False
+deriving instance Typeable 'FinalQuote
+deriving instance Typeable 'First
+deriving instance Typeable 'ForceSpecConstr
+deriving instance Typeable 'Format
+deriving instance Typeable 'GT
+deriving instance Typeable 'HardwareFault
+deriving instance Typeable 'HeapOverflow
+deriving instance Typeable 'IgnoreCodingFailure
+deriving instance Typeable 'IllegalOperation
+deriving instance Typeable 'InappropriateType
+deriving instance Typeable 'Data.Infix
+deriving instance Typeable 'InitialQuote
+deriving instance Typeable 'InputUnderflow
+deriving instance Typeable 'Interrupted
+deriving instance Typeable 'InvalidArgument
+deriving instance Typeable 'InvalidSequence
+deriving instance Typeable 'Just
+deriving instance Typeable 'K1
+deriving instance Typeable 'KProxy
+deriving instance Typeable 'Last
+deriving instance Typeable 'Left
+deriving instance Typeable 'LeftAdjust
+deriving instance Typeable 'LeftAssociative
+deriving instance Typeable 'LetterNumber
+deriving instance Typeable 'LF
+deriving instance Typeable 'LineSeparator
+deriving instance Typeable 'LossOfPrecision
+deriving instance Typeable 'LowercaseLetter
+deriving instance Typeable 'LT
+deriving instance Typeable 'MaskedInterruptible
+deriving instance Typeable 'MaskedUninterruptible
+deriving instance Typeable 'MathSymbol
+deriving instance Typeable 'ModifierLetter
+deriving instance Typeable 'ModifierSymbol
+deriving instance Typeable 'NestedAtomically
+deriving instance Typeable 'NewlineMode
+deriving instance Typeable 'NonSpacingMark
+deriving instance Typeable 'NonTermination
+deriving instance Typeable 'NoSpecConstr
+deriving instance Typeable 'NoSuchThing
+deriving instance Typeable 'NotAssigned
+deriving instance Typeable 'NotAssociative
+deriving instance Typeable 'Nothing
+deriving instance Typeable 'O
+deriving instance Typeable 'OpenPunctuation
+deriving instance Typeable 'OtherError
+deriving instance Typeable 'OtherLetter
+deriving instance Typeable 'OtherNumber
+deriving instance Typeable 'OtherPunctuation
+deriving instance Typeable 'OtherSymbol
+deriving instance Typeable 'OutputUnderflow
+deriving instance Typeable 'Overflow
+deriving instance Typeable 'Par1
+deriving instance Typeable 'ParagraphSeparator
+deriving instance Typeable 'PermissionDenied
+deriving instance Typeable 'Data.Prefix
+deriving instance Typeable 'PrivateUse
+deriving instance Typeable 'Product
+deriving instance Typeable 'ProtocolError
+deriving instance Typeable 'RatioZeroDenominator
+deriving instance Typeable 'RawDevice
+deriving instance Typeable 'ReadBuffer
+deriving instance Typeable 'ReadHandle
+deriving instance Typeable 'ReadMode
+deriving instance Typeable 'ReadWriteHandle
+deriving instance Typeable 'ReadWriteMode
+deriving instance Typeable 'RegularFile
+deriving instance Typeable 'RelativeSeek
+deriving instance Typeable 'ResourceBusy
+deriving instance Typeable 'ResourceExhausted
+deriving instance Typeable 'ResourceVanished
+deriving instance Typeable 'Right
+deriving instance Typeable 'RightAssociative
+deriving instance Typeable 'RoundtripFailure
+deriving instance Typeable 'SeekFromEnd
+deriving instance Typeable 'SemiClosedHandle
+deriving instance Typeable 'SignPlus
+deriving instance Typeable 'SignSpace
+deriving instance Typeable 'Space
+deriving instance Typeable 'SpacingCombiningMark
+deriving instance Typeable 'SPEC
+deriving instance Typeable 'SPEC2
+deriving instance Typeable 'StackOverflow
+deriving instance Typeable 'Stream
+deriving instance Typeable 'Sum
+deriving instance Typeable 'Surrogate
+deriving instance Typeable 'SystemError
+deriving instance Typeable 'ThreadBlocked
+deriving instance Typeable 'ThreadDied
+deriving instance Typeable 'ThreadFinished
+deriving instance Typeable 'ThreadKilled
+deriving instance Typeable 'ThreadRunning
+deriving instance Typeable 'TimeExpired
+deriving instance Typeable 'TitlecaseLetter
+deriving instance Typeable 'TransliterateCodingFailure
+deriving instance Typeable 'True
+deriving instance Typeable 'U1
+deriving instance Typeable 'Underflow
+deriving instance Typeable 'Unmasked
+deriving instance Typeable 'UnsatisfiedConstraints
+deriving instance Typeable 'UnsupportedOperation
+deriving instance Typeable 'UppercaseLetter
+deriving instance Typeable 'UserError
+deriving instance Typeable 'UserInterrupt
+deriving instance Typeable 'WriteBuffer
+deriving instance Typeable 'WriteHandle
+deriving instance Typeable 'WriteMode
+deriving instance Typeable 'ZeroPad
+deriving instance Typeable 'ZipList
+
+#  if defined(mingw32_HOST_OS)
+deriving instance Typeable 'Break
+deriving instance Typeable 'Close
+deriving instance Typeable 'ControlC
+deriving instance Typeable 'Logoff
+deriving instance Typeable 'Shutdown
+#  endif
 # endif
 
 #endif
