Library containing unsafe operations. These operations should be carefully used (e.g., for testing or debugging). These operations should not be used in application programs!
Author: Michael Hanus, Bjoern Peemoeller
Version: September 2013
unsafePerformIO
:: IO a > a
Performs and hides an I/O action in a computation (use with care!). 
trace
:: String > a > a
Prints the first argument as a side effect and behaves as identity on the second argument. 
spawnConstraint
:: Bool > a > a
Spawns a constraint and returns the second argument. 
isVar
:: a > Bool
Tests whether the first argument evaluates to a currently unbound variable (use with care!). 
identicalVar
:: a > a > Bool
Tests whether both arguments evaluate to the identical currently unbound variable (use with care!). 
isGround
:: a > Bool
Tests whether the argument evaluates to a ground value (use with care!). 
compareAnyTerm
:: a > a > Ordering
Comparison of any data terms, possibly containing variables. 
showAnyTerm
:: a > String
Transforms the normal form of a term into a string representation in standard prefix notation. 
showAnyQTerm
:: a > String
Transforms the normal form of a term into a string representation in standard prefix notation. 
readsAnyUnqualifiedTerm
:: [String] > String > [(a,String)]
Transform a string containing a term in standard prefix notation without module qualifiers into the corresponding data term. 
readAnyUnqualifiedTerm
:: [String] > String > a
Transforms a string containing a term in standard prefix notation without module qualifiers into the corresponding data term. 
readsAnyQTerm
:: String > [(a,String)]
Transforms a string containing a term in standard prefix notation with qualified constructor names into the corresponding data term. 
readAnyQTerm
:: String > a
Transforms a string containing a term in standard prefix notation with qualified constructor names into the corresponding data term. 
showAnyExpression
:: a > String
Transforms any expression (even not in normal form) into a string representation in standard prefix notation without module qualifiers. 
showAnyQExpression
:: a > String
Transforms any expression (even not in normal form) into a string representation in standard prefix notation with module qualifiers. 
readsAnyQExpression
:: String > [(a,String)]
Transforms a string containing an expression in standard prefix notation with qualified constructor names into the corresponding expression. 
readAnyQExpression
:: String > a
Transforms a string containing an expression in standard prefix notation with qualified constructor names into the corresponding expression. 
Performs and hides an I/O action in a computation (use with care!).

Prints the first argument as a side effect and behaves as identity on the second argument. 
Spawns a constraint and returns the second argument.
This function can be considered as defined by

Tests whether the first argument evaluates to a currently unbound variable (use with care!). 
Tests whether both arguments evaluate to the identical currently unbound
variable (use with care!).
For instance, 
Tests whether the argument evaluates to a ground value (use with care!). 
Comparison of any data terms, possibly containing variables. Data constructors are compared in the order of their definition in the datatype declarations and recursively in the arguments. Variables are compared in some internal order.

Transforms the normal form of a term into a string representation
in standard prefix notation.
Thus, showAnyTerm evaluates its argument to normal form.
This function is similar to the function 
Transforms the normal form of a term into a string representation
in standard prefix notation.
Thus, showAnyQTerm evaluates its argument to normal form.
This function is similar to the function 
Transform a string containing a term in standard prefix notation without module qualifiers into the corresponding data term. The string might contain logical variable encodings produced by showAnyTerm. In case of a successful parse, the result is a one element list containing a pair of the data term and the remaining unparsed string. 
Transforms a string containing a term in standard prefix notation
without module qualifiers into the corresponding data term.
The string might contain logical variable encodings produced by

Transforms a string containing a term in standard prefix notation
with qualified constructor names into the corresponding data term.
The string might contain logical variable encodings produced by

Transforms a string containing a term in standard prefix notation
with qualified constructor names into the corresponding data term.
The string might contain logical variable encodings produced by

Transforms any expression (even not in normal form) into a string representation in standard prefix notation without module qualifiers. The result depends on the evaluation and binding status of logic variables so that it should be used with care!

Transforms any expression (even not in normal form) into a string representation in standard prefix notation with module qualifiers. The result depends on the evaluation and binding status of logic variables so that it should be used with care!

Transforms a string containing an expression in standard prefix notation with qualified constructor names into the corresponding expression. The string might contain logical variable and defined function encodings produced by showAnyQExpression. In case of a successful parse, the result is a one element list containing a pair of the expression and the remaining unparsed string. 
Transforms a string containing an expression in standard prefix notation with qualified constructor names into the corresponding expression. The string might contain logical variable and defined function encodings produced by showAnyQExpression. 