Merge pull request #2 from PhilArmstrong/master

Fix cspmcheckeri dependencies.
Fix pretty printing of evaluated link parallel
Omit empty renames.
Fix pattern matching on negative integers.

Spotted by Bill.
Handle invalid negated patterns.
Allow interactive statements to include transparent/external.
Force prioritise to be declared as transparent.
Add a function to return all process names.
Add a function to attempt to convert a ProcName to a Proc.
Add compatibility with hashable >= 1.2.
Revert "Add compatibility with hashable >= 1.2."

This reverts commit e74f0fd6f3ff4f8b057f125acba8fd8ddc66559b.
Require a particular version of Hashable.

This is a short term fix.
Add two new built-in functions error and show, along with string types.

This should make hunting for error much simpler.
Fix pretty printing of char and string tokens.
Add support for a Char type.

This isn't really needed, but for symmetry with the remaining built-in
types ought to be included.
elem should require the Eq constraint.

Whoops!
Don't deprecate True/False.

I'm not sure what we want to do here yet.
Prevent divergent branching from occurring in the type-checker.

Before a TExtendable could be turned in to TDotable x y in multiple
different ways (essentially each time you unified a TExtendable with a
TDotable x y it would create a separate solution). This change ensures
that all such decisions are consistent.
Improve the pretty printing of type constraints.
Make extensions/productions have proper types.

This comes at a slight cost; extensions cannot be called on fully
constructed datatype or values as this would require introducing the
type of the empty dot list, which would make the type system
undecidable.

This requires a new type constraint CYieldable that holds whenever the
type is something that can be yielded by => (so only TEvent or
TDatatype).