removed unused Params.params()
removed Arg
removed generic parameter from Type class
renamed Expression -> FunctionExpression, refactored out Expression interface
added StringExpression
implemented FunctionExpression, redesigned Function
removed unnecessarily overcomplicated generic parameters