Copyright | (C) 2016-2017 Ryan Scott |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Ryan Scott |
Stability | Provisional |
Portability | GHC |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Remove the Proxy
, Proxy#
, and undefined
arguments from functions with
proxyless
, proxyHashless
, and undefinedless
, respectively, which produce
functions that take type information via GHC's -XTypeApplications
extension.
See also Data.Proxyless.RequiredTypeArguments for a version of this module
that leverages -XRequiredTypeArguments
instead of -XTypeApplications
.
This module is only available with GHC 8.0 or later.
Since: 0.2
Synopsis
- proxyless :: forall k (a :: k) b. (Proxy a -> b) -> b
- proxyHashless :: forall k (a :: k) b. (Proxy# a -> b) -> b
- undefinedless :: forall a b. (a -> b) -> b
- theBitSize :: forall a. Bits a => Int
- theIsSigned :: forall a. Bits a => Bool
- theBitSizeMaybe :: forall a. Bits a => Maybe Int
- theFiniteBitSize :: forall a. FiniteBits a => Int
- theDataTypeOf :: forall a. Data a => DataType
- theTypeNatTypeRep :: forall a. KnownNat a => TypeRep
- theTypeRep :: forall k (a :: k). Typeable a => TypeRep
- theTypeRep# :: forall k (a :: k). Typeable a => TypeRep
- theTypeSymbolTypeRep :: forall a. KnownSymbol a => TypeRep
- theSizeOf :: forall a. Storable a => Int
- theAlignment :: forall a. Storable a => Int
- theDatatypeName :: forall k (d :: k). Datatype d => [Char]
- theModuleName :: forall k (d :: k). Datatype d => [Char]
- theIsNewtype :: forall k (d :: k). Datatype d => Bool
- thePackageName :: forall k (d :: k). Datatype d => [Char]
- theConName :: forall k (c :: k). Constructor c => [Char]
- theConFixity :: forall k (c :: k). Constructor c => Fixity
- theConIsRecord :: forall k (c :: k). Constructor c => Bool
- theSelName :: forall k (s :: k). Selector s => [Char]
- theSelSourceUnpackedness :: forall k (s :: k). Selector s => SourceUnpackedness
- theSelSourceStrictness :: forall k (s :: k). Selector s => SourceStrictness
- theSelDecidedStrictness :: forall k (s :: k). Selector s => DecidedStrictness
- theFromLabel :: forall x a. IsLabel x a => a
- theNatVal :: forall n. KnownNat n => Integer
- theNatVal' :: forall n. KnownNat n => Integer
- theSameNat :: forall a b. (KnownNat a, KnownNat b) => Maybe (a :~: b)
- theSameSymbol :: forall a b. (KnownSymbol a, KnownSymbol b) => Maybe (a :~: b)
- theSomeNat :: forall n. KnownNat n => SomeNat
- theSomeSymbol :: forall n. KnownSymbol n => SomeSymbol
- theSymbolVal :: forall n. KnownSymbol n => String
- theSymbolVal' :: forall n. KnownSymbol n => String
- theFloatRadix :: forall a. RealFloat a => Integer
- theFloatDigits :: forall a. RealFloat a => Int
- theFloatRange :: forall a. RealFloat a => (Int, Int)
- theParseFormat :: forall a. PrintfArg a => ModifierParser
proxyless
, proxyHashless
, and undefinedless
proxyless :: forall k (a :: k) b. (Proxy a -> b) -> b Source #
Converts a constant function that takes a Proxy
argument to one that
doesn't require an argument.
Since: 0.2
proxyHashless :: forall k (a :: k) b. (Proxy# a -> b) -> b Source #
Converts a constant function that takes a Proxy#
argument to one that
doesn't require an argument.
Since: 0.2
undefinedless :: forall a b. (a -> b) -> b Source #
Converts a constant function that takes an undefined
argument to one that
doesn't require an argument.
Since: 0.2
Proxyless functions
Data.Bits
theBitSize :: forall a. Bits a => Int Source #
theBitSize
=undefinedless
bitSize
Since: 0.2
theIsSigned :: forall a. Bits a => Bool Source #
theIsSigned
=undefinedless
isSigned
Since: 0.2
theBitSizeMaybe :: forall a. Bits a => Maybe Int Source #
theBitSizeMaybe
=undefinedless
bitSizeMaybe
Since: 0.2
theFiniteBitSize :: forall a. FiniteBits a => Int Source #
theFiniteBitSize
=undefinedless
finiteBitSize
Since: 0.2
Data.Data
theDataTypeOf :: forall a. Data a => DataType Source #
theDataTypeOf
=undefinedless
dataTypeOf
Since: 0.2
Data.Typeable
theTypeNatTypeRep :: forall a. KnownNat a => TypeRep Source #
theTypeNatTypeRep
=proxyHashless
typeNatTypeRep
Note that in base-4.10
and later, theTypeNatTypeRep
is simply a synonym
for theTypeRep
, as typeNatTypeRep
is no longer exported.
Since: 0.2
theTypeRep :: forall k (a :: k). Typeable a => TypeRep Source #
theTypeRep
=proxyless
typeRep
Since: 0.2
theTypeRep# :: forall k (a :: k). Typeable a => TypeRep Source #
theTypeRep#
=proxyHashless
typeRep#
Note that in base-4.10
and later, theTypeRep#
is simply a synonym for
theTypeRep
, as typeRep#
is no longer exported.
Since: 0.2
theTypeSymbolTypeRep :: forall a. KnownSymbol a => TypeRep Source #
theTypeSymbolTypeRep
=proxyHashless
typeSymbolTypeRep
Note that in base-4.10
and later, theTypeSymbolTypeRep
is simply a
synonym for theTypeRep
, as typeSymbolTypeRep
is no longer exported.
Since: 0.2
Foreign.Storable
theAlignment :: forall a. Storable a => Int Source #
theAlignment
=undefinedless
alignment
Since: 0.2
GHC.Generics
theDatatypeName :: forall k (d :: k). Datatype d => [Char] Source #
theDatatypeName
=datatypeName
undefined
Since: 0.2
theModuleName :: forall k (d :: k). Datatype d => [Char] Source #
theModuleName
=moduleName
undefined
Since: 0.2
theIsNewtype :: forall k (d :: k). Datatype d => Bool Source #
theIsNewtype
=isNewtype
undefined
Since: 0.2
thePackageName :: forall k (d :: k). Datatype d => [Char] Source #
thePackageName
=packageName
undefined
Since: 0.2
theConName :: forall k (c :: k). Constructor c => [Char] Source #
theConName
=conName
undefined
Since: 0.2
theConFixity :: forall k (c :: k). Constructor c => Fixity Source #
theConFixity
=conFixity
undefined
Since: 0.2
theConIsRecord :: forall k (c :: k). Constructor c => Bool Source #
theConIsRecord
=conIsRecord
undefined
Since: 0.2
theSelName :: forall k (s :: k). Selector s => [Char] Source #
theSelName
=selName
undefined
Since: 0.2
theSelSourceUnpackedness :: forall k (s :: k). Selector s => SourceUnpackedness Source #
theSelSourceUnpackedness
=selSourceUnpackedness
undefined
Since: 0.2
theSelSourceStrictness :: forall k (s :: k). Selector s => SourceStrictness Source #
theSelSourceStrictness
=selSourceStrictness
undefined
Since: 0.2
theSelDecidedStrictness :: forall k (s :: k). Selector s => DecidedStrictness Source #
theSelDecidedStrictness
=selDecidedStrictness
undefined
Since: 0.2
GHC.OverloadedLabels
theFromLabel :: forall x a. IsLabel x a => a Source #
In base-4.10
and later, this is simply a synonym for fromLabel
.
In base-4.9
, theFromLabel
is defined as:
theFromLabel
=proxyHashless
fromLabel
Since: 0.2
GHC.TypeLits
theNatVal' :: forall n. KnownNat n => Integer Source #
theNatVal'
=proxyHashless
natVal'
Since: 0.2
theSameNat :: forall a b. (KnownNat a, KnownNat b) => Maybe (a :~: b) Source #
theSameNat
=sameNat
Proxy
Proxy
Since: 0.2
theSameSymbol :: forall a b. (KnownSymbol a, KnownSymbol b) => Maybe (a :~: b) Source #
theSameSymbol
=sameSymbol
Proxy
Proxy
Since: 0.2
theSomeNat :: forall n. KnownNat n => SomeNat Source #
theSomeNat
=proxyless
SomeNat
Since: 0.2
theSomeSymbol :: forall n. KnownSymbol n => SomeSymbol Source #
theSomeSymbol
=proxyless
SomeSymbol
Since: 0.2
theSymbolVal :: forall n. KnownSymbol n => String Source #
theSymbolVal
=proxyless
symbolVal
Since: 0.2
theSymbolVal' :: forall n. KnownSymbol n => String Source #
theSymbolVal'
=proxyHashless
symbolVal'
Since: 0.2
Prelude
theFloatRadix :: forall a. RealFloat a => Integer Source #
theFloatRadix
=undefinedless
floatRadix
Since: 0.2
theFloatDigits :: forall a. RealFloat a => Int Source #
theFloatDigits
=undefinedless
floatDigits
Since: 0.2
theFloatRange :: forall a. RealFloat a => (Int, Int) Source #
theFloatRange
=undefinedless
floatRange
Since: 0.2
Text.Printf
theParseFormat :: forall a. PrintfArg a => ModifierParser Source #
theParseFormat
=undefinedless
parseFormat
Since: 0.2