{-# LANGUAGE MultiParamTypeClasses , FlexibleInstances , FlexibleContexts , UndecidableInstances #-} module Test.Serialization.Symbiote.Cereal.Lazy where import Test.Serialization.Symbiote (SymbioteOperation, Symbiote (..), Operation) import qualified Data.Serialize as Cereal import qualified Data.ByteString.Lazy as LBS instance ( Cereal.Serialize a , Cereal.Serialize (Operation a) , SymbioteOperation a ) => Symbiote a LBS.ByteString where encode = Cereal.encodeLazy decode x = case Cereal.decodeLazy x of Left _ -> Nothing Right y -> Just y encodeOp = Cereal.encodeLazy decodeOp x = case Cereal.decodeLazy x of Left _ -> Nothing Right y -> Just y