{-# LANGUAGE NoImplicitPrelude #-}

module Test.Abides.Control.Category where

import Prelude hiding ((.), id)
import Control.Category (Category ((.), id))


identity :: Category c => Eq (c a b) => c a b -> Bool
identity p = ((id . p) == p) && ((p . id) == p)


associative :: Category q => Eq (q a d) => q c d -> q b c -> q a b -> Bool
associative x y z = (x . (y . z)) == ((x . y) . z)