Haskell Automatic generation of free theorems

This tool allows to generate free theorems for sublanguages of Haskell as described here.

The source code of the underlying library and a shell-based application using it is available here and here.

Please enter a (polymorphic) type, e.g. "(a -> Bool) -> [a] -> [a]" or simply "filter":

Please choose a sublanguage of Haskell:

no bottoms (hence no general recursion and no selective strictness)

general recursion but no selective strictness

general recursion and selective strictness

Please choose a theorem style (without effect in the sublanguage with no bottoms):

equational

inequational