synthesizing and checking open function types