(forgot to CC the list)

On Jun 24, 2011, at 8:27 PM, Daniel Patterson wrote:

It looks, from looking at the provided instances (not from having done it myself), that you need to define safeConvert functions to and from your value. Here is a partial list of conversions to and from String.
instance Convertible String SqlValue where
    safeConvert = return . SqlString
instance Convertible SqlValue String where
    safeConvert (SqlString x) = return x
    safeConvert (SqlByteString x) = return . BUTF8.toString $ x
    safeConvert (SqlInt32 x) = return . show $ x
    safeConvert (SqlInt64 x) = return . show $ x
    safeConvert (SqlWord32 x) = return . show $ x
    safeConvert (SqlWord64 x) = return . show $ x
    safeConvert (SqlInteger x) = return . show $ x
    safeConvert (SqlChar x) = return [x]
    safeConvert (SqlBool x) = return . show $ x
    safeConvert (SqlDouble x) = return . show $ x
    safeConvert (SqlRational x) = return . show $ x

On Jun 24, 2011, at 8:02 PM, Tom Murphy wrote:

Hi *,
    The title is self-explanatory. I'd like to store information from
an algebraic data type in an SQL database, but the type signature of
toSql (toSql
 :: Data.Convertible.Base.Convertible a SqlValue => a -> SqlValue)
doesn't make sense to me.
    How is this done (how do I make an instance of a typeclass like that?)

Thanks for your time,
Tom

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe