{-# LANGUAGE PolyKinds #-} module Data.Bifunctor.Product.Extra where import Data.Bifunctor.Product proj1 :: Product p q a b -> p a b proj1 :: forall {k} {k1} (p :: k -> k1 -> *) (q :: k -> k1 -> *) (a :: k) (b :: k1). Product p q a b -> p a b proj1 (Pair p a b p q a b _) = p a b p proj2 :: Product p q a b -> q a b proj2 :: forall {k} {k1} (p :: k -> k1 -> *) (q :: k -> k1 -> *) (a :: k) (b :: k1). Product p q a b -> q a b proj2 (Pair p a b _ q a b q) = q a b q