Make port checks more permissive
Get rid of input handlers for now
Minor changes to checks for ports
Generate conversion code for ports
Allow the title port to work on Strings and Signals of Strings
cosmetic: simplify traversal of maybe
Make instanceof check safer, check if it's an object before using instance of
Fix checks for node.js on stdout and stderr ports
Show nicer error messages when module initialization fails due to invalid port values
Handle signals properly, fix outgoing lists, improve errors for missing fields
cosmetic: generalize `collectLambdas` to make a list of types, move prettifying code to the Pretty instance
Correct check for outgoing higher order functions

A function can appear arbitrarily nested in a data structure, but that
function cannot have more functions within it.
Disallow signals-of-signals, functions that involve signals, and signals of functions
Handle function exports
Give nicer error messages when user provides values for ports that do not exist
Rename "output" to "ports" and "input" to "signal"
Add comments to explain the thought process and structure of the AST
Fix pretty printing for tuples as discoered by @JoeyEremondi and/or @jmite in PR #446

This fix uses some existing functions for reliably figuring out if
something is a tuple.
Fix issue with unparenthesized patterns in pretty printed lambdas pointed out by @JoeyEremondi in #446

Regarding the proposed fix in #446: The pattern pretty printer is
correct for cases where you just want the pattern, such as in
case-expressions. In some contexts, parentheses are required though, so
this fix addresses those places specifically.
Cosmetic: use a qualified import to clarify uses of isTuple