module Type.Hint
(
hintType
, hintType1
, hintTypeArg
, hintType2
, hintType2Arg1
, hintType2Arg2
, hintType3
, hintType3Arg1
, hintType3Arg2
, hintType3Arg3
, Proxy(..)
, aUnit
, aChar
, anInteger
, anInt
, anInt8
, anInt16
, anInt32
, anInt64
, aWord
, aWord8
, aWord16
, aWord32
, aWord64
, aRatio
, aRatioOf
, aRational
, aFixed
, aFixedOf
, aUni
, aDeci
, aCenti
, aMilli
, aMicro
, aNano
, aPico
, aFloat
, aDouble
, aMaybe
, aMaybeOf
, aPair
, aPairOf
, aTriple
, aTripleOf
, anEither
, anEitherOf
, aList
, aListOf
, anIo
, anIoOf
, anIoRef
, anIoRefOf
, anSt
, anStOf
, anStRef
, anStRefOf
) where
import Data.Proxy (Proxy(..))
import Data.Word
import Data.Int
import Data.Fixed
import Data.Ratio
import Data.IORef (IORef)
import Data.STRef (STRef)
import Control.Monad.ST (ST)
infixl 1 `hintType`,
`hintType1`, `hintTypeArg`,
`hintType2`, `hintType2Arg1`, `hintType2Arg2`,
`hintType3`, `hintType3Arg1`, `hintType3Arg2`, `hintType3Arg3`
hintType ∷ α → p α → α
hintType = const
hintType1 ∷ f α → p f → f α
hintType1 = const
hintTypeArg ∷ f α → p α → f α
hintTypeArg = const
hintType2 ∷ f α β → p f → f α β
hintType2 = const
hintType2Arg1 ∷ f α β → p α → f α β
hintType2Arg1 = const
hintType2Arg2 ∷ f α β → p β → f α β
hintType2Arg2 = const
hintType3 ∷ f α β γ → p f → f α β γ
hintType3 = const
hintType3Arg1 ∷ f α β γ → p α → f α β γ
hintType3Arg1 = const
hintType3Arg2 ∷ f α β γ → p β → f α β γ
hintType3Arg2 = const
hintType3Arg3 ∷ f α β γ → p γ → f α β γ
hintType3Arg3 = const
aUnit ∷ Proxy ()
aUnit = Proxy
aChar ∷ Proxy Char
aChar = Proxy
anInteger ∷ Proxy Integer
anInteger = Proxy
anInt ∷ Proxy Int
anInt = Proxy
anInt8 ∷ Proxy Int8
anInt8 = Proxy
anInt16 ∷ Proxy Int16
anInt16 = Proxy
anInt32 ∷ Proxy Int32
anInt32 = Proxy
anInt64 ∷ Proxy Int64
anInt64 = Proxy
aWord ∷ Proxy Word
aWord = Proxy
aWord8 ∷ Proxy Word8
aWord8 = Proxy
aWord16 ∷ Proxy Word16
aWord16 = Proxy
aWord32 ∷ Proxy Word32
aWord32 = Proxy
aWord64 ∷ Proxy Word64
aWord64 = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
aRatio ∷ Proxy Ratio
aRatio = Proxy
#endif
aRatioOf ∷ Proxy α → Proxy (Ratio α)
aRatioOf _ = Proxy
aRational ∷ Proxy Rational
aRational = Proxy
aFixed ∷ Proxy Fixed
aFixed = Proxy
aFixedOf ∷ Proxy α → Proxy (Fixed α)
aFixedOf _ = Proxy
aUni ∷ Proxy Uni
aUni = Proxy
aDeci ∷ Proxy Deci
aDeci = Proxy
aCenti ∷ Proxy Centi
aCenti = Proxy
aMilli ∷ Proxy Milli
aMilli = Proxy
aMicro ∷ Proxy Micro
aMicro = Proxy
aNano ∷ Proxy Nano
aNano = Proxy
aPico ∷ Proxy Pico
aPico = Proxy
aFloat ∷ Proxy Float
aFloat = Proxy
aDouble ∷ Proxy Double
aDouble = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
aMaybe ∷ Proxy Maybe
aMaybe = Proxy
#endif
aMaybeOf ∷ Proxy α → Proxy (Maybe α)
aMaybeOf _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
aPair ∷ Proxy (,)
aPair = Proxy
#endif
aPairOf ∷ Proxy α → Proxy β → Proxy (α, β)
aPairOf _ _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
aTriple ∷ Proxy (,,)
aTriple = Proxy
#endif
aTripleOf ∷ Proxy α → Proxy β → Proxy γ → Proxy (α, β, γ)
aTripleOf _ _ _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
anEither ∷ Proxy Either
anEither = Proxy
#endif
anEitherOf ∷ Proxy α → Proxy β → Proxy (Either α β)
anEitherOf _ _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
aList ∷ Proxy []
aList = Proxy
#endif
aListOf ∷ Proxy α → Proxy ([α])
aListOf _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
anIo ∷ Proxy IO
anIo = Proxy
#endif
anIoOf ∷ Proxy α → Proxy (IO α)
anIoOf _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
anIoRef ∷ Proxy IORef
anIoRef = Proxy
#endif
anIoRefOf ∷ Proxy α → Proxy (IORef α)
anIoRefOf _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
anSt ∷ Proxy ST
anSt = Proxy
#endif
anStOf ∷ Proxy α → Proxy (ST α)
anStOf _ = Proxy
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 706
anStRef ∷ Proxy STRef
anStRef = Proxy
#endif
anStRefOf ∷ Proxy α → Proxy (STRef α)
anStRefOf _ = Proxy