module DomainAeson where

import DomainAeson.Prelude
import qualified DomainAeson.TH as TH
import qualified DomainCore.Deriver as Deriver

toJsonDeriver :: Deriver.Deriver
toJsonDeriver :: Deriver
toJsonDeriver =
  (TypeDec -> [Dec]) -> Deriver
Deriver.effectless (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. TypeDec -> Dec
TH.toJsonDec)

fromJsonDeriver :: Deriver.Deriver
fromJsonDeriver :: Deriver
fromJsonDeriver =
  (TypeDec -> [Dec]) -> Deriver
Deriver.effectless (forall (f :: * -> *) a. Applicative f => a -> f a
pure forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. TypeDec -> Dec
TH.fromJsonDec)