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
