module SubHask.Category.Product where import GHC.Prim import qualified Prelude as P import SubHask.Category import SubHask.Internal.Prelude import GHC.Exts ------------------------------------------------------------------------------- data (><) cat1 cat2 a b = Product (cat1 a b, cat2 a b) instance (Category cat1, Category cat2) => Category (cat1 >< cat2) where type ValidCategory (cat1><cat2) a = (ValidCategory cat1 a, ValidCategory cat2 a) id = Product (id,id) (Product (c1,d1)).(Product (c2,d2)) = Product (c1.c2,d1.d2)