Make type in fundecl optional to support `func foo(a, b int)`

Depends on #4