double-scanning parameter lists to allow for polymorphic functions now passes existing test cases
Adding a test case for polymorphism
Merge branch 'poly'

Allowing functions to be polymorphic
some refactoring
adding some test cases i missed