pile of testing boilerplate
added cases to "typ" and "ast" datatypes for functions, applications, if-statements