On Mon, Jun 20, 2011 at 5:07 PM, Alexey Karakulov <[email protected]> wrote:
> Hi all,
> I encountered a problem when trying to
>
>> derive makeBinary ''DiffTime
>
> with help of derive package. The error was:
>
> Not in scope: data constructor `MkDiffTime'
>
> Which makes a sense, since it's not exported in Data.Time.Clock.
> I bypassed the problem (yes, I'm too lazy to write instances by hands) with
>
>> instance Binary UTCTime where
>>  put =
>> putGeneric
>>  get =
>> getGeneric
>
> But it must be less efficient (and more verbose) than compile-time deriving.
> If there was such a module like Data.Time.Clock.Internal, I could import it
> to get hidden constructors (and maybe I'll have to fork the library for this
> purpose).
>
> OTOH, is it possible to change the derive TH function so it can bypass
> module encapsulation mechanism and access un-exported things?
>

I would benchmark putGeneric/getGeneric against:

> put = put . toRational
> get = fromRational <$> get

It looks like that's what the safecopy package on Hackage uses.

Antoine

> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to