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 $ xOn 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