[web-devel] Automatically making every Cereal.Serialize instance of PersistField - bad idea?
Michael Snoyman
michael at snoyman.com
Fri Jan 28 08:39:22 CET 2011
My guess is that you will eventually end up needing an
OverlappingInstances extension as well, and those two extensions
together can lead to some funny stuff. It *may* work, but I would
strongly recommend a newtype wrapper instead.
Michael
On Fri, Jan 28, 2011 at 8:28 AM, Max Cantor <mxcantor at gmail.com> wrote:
> I should have added, as long as the type-checker terminates and doesn't go into an infinite loop, is there any danger in doing this?
>
> On Jan 28, 2011, at 2:24 PM, Max Cantor wrote:
>
>> With a bit of code, you can save a lot of effort if you add new types to Persistent:
>>
>> instance Cereal.Serialize a => PersistField a where
>> toPersistValue a = PersistByteString $ Cereal.encode a
>> fromPersistValue (PersistByteString b) = Cereal.decode b
>> fromPersistValue _ = Left "bad type for cereal encoded data"
>> sqlType _ = SqlBlob
>> isNullable _ = False
>>
>> BUT, this requires UndecidableInstances. Is this a bad idea?
>>
>> mc
>
>
> _______________________________________________
> web-devel mailing list
> web-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel
>
More information about the web-devel
mailing list