Popularity
8.7
Stable
Activity
3.7
-
41
15
13

Monthly Downloads: 214
Programming language: Haskell
License: GNU General Public License v3.0 or later
Tags: Development     GHC     Type System    
Latest version: v0.7.2

ghc-typelits-natnormalise alternatives and similar packages

Based on the "ghc" category.
Alternatively, view ghc-typelits-natnormalise alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of ghc-typelits-natnormalise or a related project?

Add another 'ghc' Package

README

ghc-typelits-natnormalise

Build Status Hackage Hackage Dependencies

A type checker plugin for GHC that can solve equalities and inequalities of types of kind Nat, where these types are either:

  • Type-level naturals
  • Type variables
  • Applications of the arithmetic expressions (+,-,*,^).

It solves these equalities by normalising them to sort-of SOP (Sum-of-Products) form, and then perform a simple syntactic equality.

For example, this solver can prove the equality between:

(x + 2)^(y + 2)

and

4*x*(2 + x)^y + 4*(2 + x)^y + (2 + x)^y*x^2

Because the latter is actually the SOP normal form of the former.

To use the plugin, add

{-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise #-}

To the header of your file.