[TypeApplications] Create Proxy-free alternatives of functions in base
Now that we have TypeApplications how about we create a Proxy-free version of functions in base that currently require it:
tr :: forall a. Typeable a => TypeRep
tr = typeRep @Proxy @a Proxy
symbol :: forall s. KnownSymbol s => String
symbol = symbolVal @s Proxy
nat :: forall n. KnownNat n => Integer
nat = natVal @n Proxy
While we're at it let's use Natural as the value-level representation of Nat, avoiding Maybe
in someNatVal :: Integer -> Maybe SomeNat
:
nat :: forall n. KnownNat n => Natural
nat = natVal @n Proxy
someNatVal :: Natural -> SomeNat
someNatVal = ...
Trac metadata
Trac field | Value |
---|---|
Version | 7.10.3 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Core Libraries |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | ekmett |
Operating system | |
Architecture |