Fix case in Type to_string output
Remove never-entered branch
Add is_composite() to Type(s)
minimal_covering_type for composites

Indeed, there must be a cleaner way to do this.
Only emit parameter code in test function if defined
More (and renamed) tests for booleans: likely failing still
Use min_cov_type for getting the right boolean & implementation

Including emitting the right types and all.

Mattia, see markers for review: Feels wrong to me.
Remove FIXME notice about min_cov_type
Remove 1+() wrapping from some fixed && tests
Implement & test boolean ||
Use min_cov_type in ternary implementation

More code to review for sanity regarding use of Any/Unspecified.
Add valgrind perl suppression file (because we will want it later)
Build.PL -g option for useful debugging options without nasty output
Mark private attribute of OPTreeCandidateFinder
Remove superflous checks for ANY type.

The idea is that ANY is passed as the requested return type when any
return type will do.  However the returned type must always be a
specific type (returning ANY would mean that any type can be returned
at runtime).  Since all comparisons removed by this commit check returned
types, it is correct to remove the checks.
AST: shift/pop
AST: push, unshift
AST: helem
AST: splice
AST: RV2GV and caller

RV2GV makes this ASTifyable:

print STDOUT "foo";