module Test.Feat.Class {-# DEPRECATED "Use Control.Enumerable instead" #-}
  ( Enumerable(..)
  , nullary
  , unary
  , funcurry
  , shared
  , consts
  , deriveEnumerable
  ) where

import Control.Enumerable

-- compatability

{-# DEPRECATED nullary "use c0 instead" #-}
nullary :: Sized f => a -> Shareable f a
nullary :: a -> Shareable f a
nullary a
x = a -> Shareable f a
forall (f :: * -> *) a. Sized f => a -> Shareable f a
c0 a
x

{-# DEPRECATED unary "use c1 instead" #-}
unary :: (Sized f, Enumerable a, Typeable f) => (a -> x) -> Shareable f x
unary :: (a -> x) -> Shareable f x
unary a -> x
x = (a -> x) -> Shareable f x
forall a (f :: * -> *) x.
(Enumerable a, Sized f, Typeable f) =>
(a -> x) -> Shareable f x
c1 a -> x
x

{-# DEPRECATED shared "use access instead" #-}
shared :: (Sized f, Enumerable a, Typeable f) => Shareable f a
shared :: Shareable f a
shared = Shareable f a
forall a (f :: * -> *).
(Enumerable a, Sized f, Typeable f) =>
Shareable f a
access


funcurry :: (a -> b -> c) -> (a,b) -> c
funcurry :: (a -> b -> c) -> (a, b) -> c
funcurry = (a -> b -> c) -> (a, b) -> c
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry

{-# DEPRECATED consts "use datatype instead" #-}
consts :: (Sized f, Typeable f, Typeable a) => [Shareable f a] -> Shared f a
consts :: [Shareable f a] -> Shared f a
consts [Shareable f a]
xs = [Shareable f a] -> Shared f a
forall a (f :: * -> *).
(Typeable a, Sized f, Typeable f) =>
[Shareable f a] -> Shared f a
datatype [Shareable f a]
xs