ghc-ghc-typelits-knownnat

Derive KnownNat constraints from other KnownNat constraints

A type checker plugin for GHC that can derive "complex" 'KnownNat' constraints from other simple/variable 'KnownNat' constraints. i.e. without this plugin, you must have both a 'KnownNat n' and a 'KnownNat (n+2)' constraint in the type signature of the following function: ' f :: forall n . (KnownNat n, KnownNat (n+2)) => Proxy n -> Integer f _ = natVal (Proxy :: Proxy n) + natVal (Proxy :: Proxy (n+2)) ' Using the plugin you can omit the 'KnownNat (n+2)' constraint: ' f :: forall n . KnownNat n => Proxy n -> Integer f _ = natVal (Proxy :: Proxy n) + natVal (Proxy :: Proxy (n+2)) ' The plugin can derive 'KnownNat' constraints for types consisting of: * Type variables, when there is a corresponding 'KnownNat' constraint * Type-level naturals * Applications of the arithmetic expression: +,-,*,^ * Type functions, when there is either: 1. a matching given 'KnownNat' constraint; or 2. a corresponding 'KnownNat<N>' instance for the type function To use the plugin, add the ' OPTIONS_GHC -fplugin GHC.TypeLits.KnownNat.Solver ' Pragma to the header of your file.

There is no official package available for openSUSE Leap 16.0

Distributions

Unsupported distributions

The following distributions are not officially supported. Use these packages at your own risk.