holmes-0.2.0.0: test/Test/Data/JoinSemilattice/Class/Abs.hs
{-# LANGUAGE BlockArguments #-}
module Test.Data.JoinSemilattice.Class.Abs where
import Data.Holmes (AbsR (..))
import Hedgehog
absR_absR :: (AbsR x, Eq x, Num x, Show x) => Gen x -> Property
absR_absR gen = property do
a <- forAll gen
let ( _, b ) = absR ( a, mempty )
annotateShow b
b === abs a
let ( a', _ ) = absR ( mempty, b )
annotateShow a'
a' <> a === a