{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE TypeInType #-} {-| This module isn't really useful yet, see the following [issue](https://github.com/clintonmead/freelude/issues/1) -} module Freelude.Impl.Compat ( ) where import Prelude hiding (Functor, fmap, (<$>)) import qualified Freelude.Impl.Classes as Class import Freelude.Impl.Classes ( FunctionP, BasicFunctorP -- FunctorT, -- fmap, -- FunctorSrcC, FunctorDstC ) class Class.Functor FunctionP (BasicFunctorP f) => Functor f instance Class.Functor FunctionP (BasicFunctorP f) => Functor f --class Class.Functor FunctionP (SimpleFunctorP src_c dst_c f) => UnrestrictedFunctor f --instance Class.Functor FunctionP (SimpleFunctorP src_c dst_c f) => UnrestrictedFunctor f --UnrestrictedFunctor f, Ord a => (a -> b) -> f a -> f b --type MonoFunctor a t = forall p. (Functor p, FunctorT p a ~ t) => t