HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Moduleserialise-0.2.6.1Haskell2010

Codec.Serialise.Properties

This module contains a set of generally useful properties, which instance authors are encouraged to use in order to test their instances of the Serialise class. For example, if you have a data type which you might derive or write instances for:

data Foo = Foo { fooInt :: Int, fooBool :: Bool }
  deriving (Eq, Show, Generic)
-- or, alternatively
instance Serialise Foo where
  encode = ...
  decode = ...

Then you can use this module to easily derive some quick properties:

import qualified Codec.Serialise.Properties as Props

fooSerialiseId :: Foo -> Bool
fooSerialiseId = Props.serialiseIdentity

fooFlatTermId :: Foo -> Bool
fooFlatTermId = Props.flatTermIdentity

fooHasValidFlatTerm :: Foo -> Bool
fooHasValidFlatTerm = Props.hasValidFlatTerm

You can then conveniently use these three functions with QuickCheck, for example.

  • 3 values
  • Packageserialise-0.2.6.1
  • Exports3
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceProperties.hs

CBOR Properties

1 declaration

FlatTerm Properties

2 declarations