Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,861
    • Issues 4,861
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 456
    • Merge requests 456
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #11349
Closed
Open
Created Jan 04, 2016 by Icelandjack@IcelandjackReporter

[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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking