I have a combinator C and a Functor instance defined as follows:
data C f1 f2 a = C (f1 a) (f2 a)
instance
( Functor f1
, Functor f2
)
=> Functor (C f1 f2)
where
fmap g (C a b) = C (fmap g a) (fmap g b)
In plain English I might describe C as a product type in which the fmap instance distributes.
My implementation here is fine for my purposes here, but I want to know if there is a proper name for this combinator in the haskell or category-theoretic jargon, so that I might project to future users of this library what this does, or even use existing code instead if such exists.
Does this combinator already have a name?