{-# LANGUAGE KindSignatures #-} 
-----------------------------------------------------------------------------
-- | @Functor2@ and @Functor3@ type classes
-----------------------------------------------------------------------------
module Control.Functor (
      Functor2(fmap2)
    , Functor3(fmap3)
    ) where


class Functor2 (f :: * -> * -> *)  where
    fmap2 :: (a -> b) -> f a x -> f b x

class Functor3 (f :: * -> * -> * -> *)  where
    fmap3 :: (a -> b) -> f a x y -> f b x y