J'ai un module Foo.hs
qui contient une définition qui ne dérive pas Generic
:dériver Generic et ToJSON en même temps?
-- Foo.hs
data Blather = Blather ... -- Generic not derived here
Et dans un autre module Je veux tirer ToJSON
:
-- Bar.hs
{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-}
import GHC.Generics
import Data.Aeson
instance Generic Blather
instance ToJSON Blather
mais il ne compile pas. Si je dérive générique dans Foo.hs
sur le site de définition, je peux plus tard dériver ToJSON
dans un autre module.
Puis-je dériver ToJSON Blather
dans Bar.hs
sans modifier l'original Foo.hs
?
Ou existe-t-il un moyen simple d'écrire instance ToJSON Blather
à la main?
t-il avec le [ 'l'extension StandaloneDeriving'] (https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/deriving.html)? –
Pourquoi ne voulez-vous pas dériver 'Generic' où vous définissez le type? Les instances orphelines sont mauvaises! – dfeuer
Oui, ce serait la bonne solution, mais à ce stade, je ne veux pas soumettre un PR qui modifie 'Foo.hs'. – ErikR