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.
-
ghc-exactprint
GHC version of haskell-src-exts exactPrint -
ghc-source-gen
Library for generating Haskell source files and code fragments. -
ghc-events-analyze
Analyze and visualize event logs -
ghc-events
Library and tool for parsing .eventlog files from GHC -
ghc-core
Display GHC's core and assembly output in a pager -
ghc-paths
Knowledge of GHC's installation directories -
ghc-typelits-extra
Extra type-level operations on GHC.TypeLits.Nat and a custom solver -
ghc-typelits-knownnat
Derive KnownNat constraints from other KnownNat constraints -
ghc-make
An alternative to ghc --make which supports parallel compilation of modules and runs faster when nothing needs compiling. -
ghc-datasize
ghc-datasize is a tool to determine the size of Haskell data structures in GHC's memory -
ghc-tags-plugin
Generate tags file for haskell modules (GHC) -
ghc-imported-from
For a given Haskell source file, determine where a symbol is imported from -
ghc-core-html
Read ghc-core with style. javascript and CSS style. -
ghc-syb
Scrap Your Boilerplate instances for GHC's data types -
ghc-time-alloc-prof
Library for parsing GHC time and allocation profiling reports -
ghc-prof
Library for parsing GHC time and allocation profiling reports -
ghc-lib-parser-ex
GHC API parse tree utilities -
ghc-trace-events
ByteString/Text variants of Debug.Trace.traceEvent/traceMarker and binary event logging -
ghc-pkg-lib
a library mimicking ghc-pkg list function -
ghc-usage
Frontend plugin to print locally used module info -
ghc-pkg-autofix
Simple utility to fix BROKEN package dependencies for cabal-install. -
ghc-srcspan-plugin
Generic GHC Plugin for annotating Haskell code with source location data. -
ghc-syb-utils
Scrap Your Boilerplate utilities for the GHC API.
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of ghc-typelits-natnormalise or a related project?
README
ghc-typelits-natnormalise
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.