   {-# INLINE fromCDouble #-}
 
 #ifdef STORABLE_COMPLEX
+
+deriving instance Storable a => Storable (CComplex a)
+
 instance GDALType (Complex Int16) where
   type DataTypeT (Complex Int16) = 'GDT_CInt16
   toCDouble = fromIntegral . realPart

  GType 'GDT_CFloat64 = CComplex CDouble

newtype CComplex a = CComplex (Complex a)
  deriving (Eq, Storable, Show)

class KnownDataType (k :: DataType) where
  dataTypeVal :: Proxy (k :: DataType) -> DataType

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}

module GDAL.Internal.DataType (
    GDALType (..)
