module Spec.Category (testCategory, testCommutativeCategory) where
import Control.Category
import Hedgehog
import Hedgehog.Classes
import Prelude hiding ((.), id)
testCategory :: [(String, [Laws])]
testCategory =
[ ("ProxyC", [categoryLaws genProxyC])
]
testCommutativeCategory :: [(String, [Laws])]
testCommutativeCategory =
[ ("ProxyC", [commutativeCategoryLaws genProxyC])
]
data ProxyC a b = ProxyC
deriving (Eq, Show)
instance Category ProxyC where
id = ProxyC
_ . _ = ProxyC
genProxyC :: Gen a -> Gen b -> Gen (ProxyC a b)
genProxyC _ _ = pure ProxyC