Fix a bug when F# calling convention is different from OCaml one

This is caused by putting parentheses at wrong places.
Add placeholders for some test modules
Refactor test cases

- Some tests are changed to compare strings since they have different
type vars from parsing.

- Rewrite tests on goalstate to be clear

Status: 300 passed and 3 failing tests