Show -package:haskell-gi-base -package:base-prelude is:module

Converting values to readable strings: the Show class and associated functions.
The Show class, and related operations.
Support for creating Show instances using the accessors.
Show and Read properties
Convert a physical value to a human readable string.
This module is part of LeanCheck, a simple enumerative property-based testing library. This module exports an orphan Show instance for functions. It shows functions as up to 8 case distinctions, one per line. Warning: this is only intended to be used in testing modules. Avoid importing this on modules that are used as libraries. This is intended to Show functions generated by the Listable instance for functions defined in Test.LeanCheck.Function.Listable: functions that have finite exceptions to a constant function. It does work on other types of functions, albeit using "...".
> print (&&)
\x y -> case (x,y) of
(True,True) -> True
_ -> False
> print (==>)
\x y -> case (x,y) of
(True,False) -> False
_ -> True
> print (==2)
\x -> case x of
2 -> True
_ -> False
> print (\x -> abs x < 2)
\x -> case x of
0 -> True
1 -> True
-1 -> True
_ -> False
When the function cannot be defined by finite exceptions to a constant function using 8 case-patterns, the rest of the function is represented by "...".
> print (+)
\x y -> case (x,y) of
(0,0) -> 0
(0,1) -> 1
(1,0) -> 1
(0,-1) -> -1
(1,1) -> 2
(-1,0) -> -1
(0,2) -> 2
(1,-1) -> 0
...
The exported orphan Show -> instance is actually defined in Test.LeanCheck.Function.Show.EightLines. An alternative is provided in Test.LeanCheck.Function.Show.FourCases. The exported Show instance only works for functions whose ultimate return types are instances of ShowFunction. For user-defined algebraic datatypes that are instances of Show, their ShowFunction instance can be defined by using bindtiersShow:
import Test.LeanCheck.Function.ShowFunction

instance ShowFunction Ty where
bindtiers  =  bindtiersShow
Generic implementation of Show

Warning

This is an internal module: it is not subject to any versioning policy, breaking changes can happen at any time. If something here seems useful, please report it or create a pull request to export it from an external module.
Show and Read properties
This module defines showing of (higher-order) signatures, which lifts to showing of (higher-order) terms and contexts. All definitions are generalised versions of those in Data.Comp.Show.
This module defines showing of signatures, which lifts to showing of terms and contexts.
A Show instance for functions, given the input is Finite and both the input and output are Show.
This module defines a simple JSON-based format for exporting basic information about a Cabal package and the compiler configuration Cabal would use to build it. This can be produced with the cabal build --enable-build-info command. This format is intended for consumption by external tooling and should therefore be rather stable. Moreover, this allows tooling users to avoid linking against Cabal. This is an important advantage as direct API usage tends to be rather fragile in the presence of user-initiated upgrades of Cabal. Below is an example of the output this module produces,
{ "cabal-lib-version": "1.23.0.0",
"compiler": {
"flavour": GHC,
"compiler-id": "ghc-7.10.2",
"path": "usrbin/ghc",
},
"components": [
{ "type": "lib",
"name": "lib:Cabal",
"compiler-args":
["-O", "-XHaskell98", "-Wall",
"-package-id", "parallel-3.2.0.6-b79c38c5c25fff77f3ea7271851879eb"]
"modules": [Project.ModA, Project.ModB, Paths_project],
"src-files": [],
"src-dirs": ["src"]
}
]
}
The output format needs to be validated against 'docjson-schemasbuild-info.schema.json'. If the format changes, update the schema as well! The cabal-lib-version property provides the version of the Cabal library which generated the output. The compiler property gives some basic information about the compiler Cabal would use to compile the package. The components property gives a list of the Cabal Components defined by the package. Each has,
  • type: the type of the component (one of lib, exe, test, bench, or flib)
  • name: a string serving to uniquely identify the component within the package.
  • compiler-args: the command-line arguments Cabal would pass to the compiler to compile the component
  • modules: the modules belonging to the component
  • src-dirs: a list of directories where the modules might be found
  • src-files: any other Haskell sources needed by the component
Note: At the moment this is only supported when using the GHC compiler.
XML tree conversion to external string representation