
#11349: [TypeApplications] Create Proxy-free alternatives of functions in base -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Core Libraries | Version: 7.10.3 Resolution: | Keywords: | TypeApplications Operating System: Other | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Iceland_jack): To get the ball rolling I suggest prefixing them with {in?,}definite articles: {{{#!hs aNat :: forall n. KnownNat n => Natural theNat :: forall n. KnownNat n => Natural aSymbol :: forall s. KnownSymbol s => String theSymbol :: forall s. KnownSymbol s => String aTypeRep :: forall t. Typeable t => TypeRep theTypeRep :: forall t. Typeable t => TypeRep theSizeOf :: forall s. Storable s => Int theSizeOf = sizeOf @s undefined }}} For the '''''T'''angent '''o'''f '''t'''he '''D'''ay'' ('''''a'''s '''a''' '''S'''ervice'') (''TotD''(''aaS'')), how should the inclusion of Natural in base influence functions and other libraries? Functions like `length`, `take`, `drop`, `splitAt`, `replicate` scream for natural numbers as their arguments: Their types are of course well established, `Int` is also fixed- while `Natural` is arbitrary-precision. Is `Word` suitable? Maybe not worth it. Lens defines `instance FunctorWithIndex Int []` whose functional dependency forbids indexing lists by (arguably more ‘natural’) `Natural` or `Word`. Changing them retroactively is a pain, but does it make sense in a perfect world? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11349#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler