packages feed

quickcheck-quid-0.0.1.1: src/example/Test/QuickCheck/Quid/Example.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

module Test.QuickCheck.Quid.Example where

import GHC.Generics
    ( Generic )
import Test.QuickCheck
    ( Arbitrary, CoArbitrary, Function )
import Test.QuickCheck.Quid
    ( Decimal (..), Hexadecimal (..), Latin (..), Quid, Size (..) )

newtype FooId = FooId (Decimal Quid)
    deriving stock (Eq, Generic, Ord, Read, Show)
    deriving Arbitrary via Size 256 Quid
    deriving CoArbitrary via Quid
    deriving anyclass Function
    deriving newtype Num

newtype BarId = BarId (Hexadecimal Quid)
    deriving stock (Eq, Generic, Ord, Read, Show)
    deriving Arbitrary via Size 256 Quid
    deriving CoArbitrary via Quid
    deriving anyclass Function
    deriving newtype Num

newtype BazId = BazId (Latin Quid)
    deriving stock (Eq, Generic, Ord, Read, Show)
    deriving Arbitrary via Size 256 Quid
    deriving CoArbitrary via Quid
    deriving anyclass Function