module Database.MySQL.Simple.Types
    (
      Null(..)
    , Only(..)
    , Query(..)
    ) where
import Control.Arrow
import Control.DeepSeq (NFData)
import Blaze.ByteString.Builder
import Data.String (IsString(..))
import qualified Blaze.ByteString.Builder.Char.Utf8 as Utf8
import Data.ByteString (ByteString)
data Null = Null
newtype Query = Query {
      fromQuery :: ByteString
    } deriving (Eq, Ord)
instance Show Query where
    show = show . fromQuery
instance Read Query where
    readsPrec i = fmap (first Query) . readsPrec i
instance IsString Query where
    fromString = Query . toByteString . Utf8.fromString
newtype Only a = Only a
    deriving (Eq, Ord, Read, Show, NFData)