Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides Proxy
values for various types from the base
library and functions to use these values as hints for type inference.
- hintType :: α -> p α -> α
- hintType1 :: f α -> p f -> f α
- hintTypeArg :: f α -> p α -> f α
- hintType2 :: f α β -> p f -> f α β
- hintType2Arg1 :: f α β -> p α -> f α β
- hintType2Arg2 :: f α β -> p β -> f α β
- hintType3 :: f α β γ -> p f -> f α β γ
- hintType3Arg1 :: f α β γ -> p α -> f α β γ
- hintType3Arg2 :: f α β γ -> p β -> f α β γ
- hintType3Arg3 :: f α β γ -> p γ -> f α β γ
- data Proxy t :: k -> * = Proxy
- aUnit :: Proxy ()
- aChar :: Proxy Char
- anInteger :: Proxy Integer
- anInt :: Proxy Int
- anInt8 :: Proxy Int8
- anInt16 :: Proxy Int16
- anInt32 :: Proxy Int32
- anInt64 :: Proxy Int64
- aWord :: Proxy Word
- aWord8 :: Proxy Word8
- aWord16 :: Proxy Word16
- aWord32 :: Proxy Word32
- aWord64 :: Proxy Word64
- aRatio :: Proxy Ratio
- aRatioOf :: Proxy α -> Proxy (Ratio α)
- aRational :: Proxy Rational
- aFixed :: Proxy Fixed
- aFixedOf :: Proxy α -> Proxy (Fixed α)
- aUni :: Proxy Uni
- aDeci :: Proxy Deci
- aCenti :: Proxy Centi
- aMilli :: Proxy Milli
- aMicro :: Proxy Micro
- aNano :: Proxy Nano
- aPico :: Proxy Pico
- aFloat :: Proxy Float
- aDouble :: Proxy Double
- aMaybe :: Proxy Maybe
- aMaybeOf :: Proxy α -> Proxy (Maybe α)
- aPair :: Proxy (,)
- aPairOf :: Proxy α -> Proxy β -> Proxy (α, β)
- aTriple :: Proxy (,,)
- aTripleOf :: Proxy α -> Proxy β -> Proxy γ -> Proxy (α, β, γ)
- anEither :: Proxy Either
- anEitherOf :: Proxy α -> Proxy β -> Proxy (Either α β)
- aList :: Proxy []
- aListOf :: Proxy α -> Proxy [α]
- anIo :: Proxy IO
- anIoOf :: Proxy α -> Proxy (IO α)
- anIoRef :: Proxy IORef
- anIoRefOf :: Proxy α -> Proxy (IORef α)
- anSt :: Proxy ST
- anStOf :: Proxy α -> Proxy (ST α)
- anStRef :: Proxy STRef
- anStRefOf :: Proxy α -> Proxy (STRef α)
Hinting functions
hintTypeArg :: f α -> p α -> f α infixl 1 Source
Hint the type system about the type argument.
hintType2 :: f α β -> p f -> f α β infixl 1 Source
Hint the type system about the two-argument type constructor.
hintType2Arg1 :: f α β -> p α -> f α β infixl 1 Source
Hint the type system about the first type argument.
hintType2Arg2 :: f α β -> p β -> f α β infixl 1 Source
Hint the type system about the second type argument.
hintType3 :: f α β γ -> p f -> f α β γ infixl 1 Source
Hint the type system about the three-argument type constructor.
hintType3Arg1 :: f α β γ -> p α -> f α β γ infixl 1 Source
Hint the type system about the first type argument.
hintType3Arg2 :: f α β γ -> p β -> f α β γ infixl 1 Source
Hint the type system about the second type argument.
hintType3Arg3 :: f α β γ -> p γ -> f α β γ infixl 1 Source
Hint the type system about the third type argument.
Standard types proxies
data Proxy t :: k -> *
A concrete, poly-kinded proxy type