the surface syntax is starting to look a lot more surfacyall I had to do was to come up with a new bidirectional typing algorithm to get rid of all the type annotations