content: module Data.Data where
  
  
  
  data DataType
  data Constr
  data DataRep
  data ConstrRep
  data Fixity
  
  class Typeable a => Data a where
    gfoldl  :: (forall d b. Data d => c (d -> b) -> d -> c b)
            -> (forall g. g -> c g)
            -> a
            -> c a
  
    gunfold :: (forall b r. Data b => c (b -> r) -> c r)
            -> (forall r. r -> c r)
            -> Constr
            -> c a
  
    toConstr   :: a -> Constr
  
    dataTypeOf  :: a -> DataType
  
    dataCast1 :: Typeable t
              => (forall d. Data d => c (t d))
              -> Data.Maybe.Maybe (c a)
  
    dataCast2 :: Typeable t
              => (forall d e. (Data d, Data e) => c (t d e))
              -> Data.Maybe.Maybe (c a)
  
    -- following removed for exploding the search space
  
    -- gmapT :: (forall b. Data b => b -> b) -> a -> a
  
    -- gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
  
    -- gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
  
    -- gmapQ :: (forall d. Data d => d -> u) -> a -> [u]
  
    -- gmapQi :: forall u. Data.Int.Int -> (forall d. Data d => d -> u) -> a -> u
  
    -- gmapM :: forall m. Control.Monad.Monad m => (forall d. Data d => d -> m d) -> a -> m a
  
    -- gmapMp :: forall m. Control.Monad.MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a
  
    -- gmapMo :: forall m. Control.Monad.MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a
  
  
  instance Data Data.Bool.Bool
  instance Data Data.Char.Char
  instance Data Prelude.Double
  instance Data Prelude.Float
  instance Data Data.Int.Int
  instance Data Data.Int.Int8
  instance Data Data.Int.Int16
  instance Data Data.Int.Int32
  instance Data Data.Int.Int64
  instance Data Prelude.Integer
  instance Data Data.Ord.Ordering
  instance Data Data.Word.Word
  instance Data Data.Word.Word8
  instance Data Data.Word.Word16
  instance Data Data.Word.Word32
  instance Data Data.Word.Word64
  instance Data ()
  -- instance Data Version
  -- instance Data Natural
  -- instance Data SpecConstrAnnotation
  instance Data Data.Void.Void
  instance Data a => Data [a]
  -- instance (Data a, Prelude.Integral a) => Data (Ratio a)
  -- instance (Data a, Typeable * a) => Data (Ptr a)
  instance Data a => Data (Data.Maybe.Maybe a)
  -- instance (Data a, Typeable * a) => Data (ForeignPtr a)
  -- instance Data a => Data (Complex a)
  -- instance Typeable * a => Data (Fixed a)
  -- instance Data a => Data (Identity a)
  instance (Data a, Data b) => Data (Data.Either.Either a b)
  instance (Data a, Data b) => Data (a, b)
  -- instance Data t => Data (Proxy * t)
  instance (Data a, Data b, Data c) => Data (a, b, c)
  -- instance ((~) * a b, Data a) => Data ((:~:) * a b)
  -- instance (Coercible * a b, Data a, Data b) => Data (Coercion * a b)
  instance (Data a, Data b, Data c, Data d) => Data (a, b, c, d)
  instance (Data a, Data b, Data c, Data d, Data e) => Data (a, b, c, d, e)
  instance (Data a, Data b, Data c, Data d, Data e, Data f) => Data (a, b, c, d, e, f)
  instance (Data a, Data b, Data c, Data d, Data e, Data f, Data g) => Data (a, b, c, d, e, f, g)
  
  
  dataTypeConstrs :: DataType -> [Constr] 
  