
#10055: Offer PolyKinded instances for Data.Fixed.HasResolution -------------------------------------+------------------------------------- Reporter: redneb | Owner: Type: feature request | Status: new Priority: low | Milestone: Component: libraries/base | Version: 7.8.4 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Description changed by redneb: Old description:
Now that we have `DataKinds` and `PolyKinds`, how about offering an instance of `Data.Fixed.HasResolution` for type level natural numbers. For example
{{{#!hs instance KnownNat n => HasResolution (n :: Nat) where resolution proxy = 10 ^ natVal proxy }}}
or even
{{{#!hs instance KnownNat n => HasResolution (n :: Nat) where resolution = natVal }}}
This will make it very easy to create fixed-point types on the fly. The following extensions are required for that to work: `DataKinds`, `PolyKinds`, `FlexibleInstances`, and `UndecidableInstances`.
New description: Now that we have `DataKinds` and `PolyKinds`, how about offering an instance of `Data.Fixed.HasResolution` for type level natural numbers. For example {{{#!hs instance KnownNat n => HasResolution (n :: Nat) where resolution proxy = 10 ^ natVal proxy }}} or even {{{#!hs instance KnownNat n => HasResolution (n :: Nat) where resolution = natVal }}} This will make it very easy to create fixed-point types on the fly. For example, it would be possible to say `0.3 :: Fixed 17`. The following extensions are required for that to work: `DataKinds`, `PolyKinds`, `FlexibleInstances`, and `UndecidableInstances`. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10055#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler