{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE StarIsType #-}
{-# LANGUAGE TypeFamilies #-}
module Data.Managed.Encodings.JSON where
import Data.Aeson (FromJSON, Result(..), ToJSON, Value, fromJSON, toJSON)
import Data.Managed.Encoding
data JSON
instance Encoding JSON where
type In JSON = Value
type Out JSON = Value
instance (ToJSON a) => Encode a JSON where
encode = toJSON
instance (FromJSON a) => Decode a JSON where
decode v =
case fromJSON v of
Error _ -> Nothing
Success x -> x