@@ -0,0 +1,639 @@
+package types;%0A%0Aimport javaslang.collection.List;%0A%0Apublic class FUNCTION extends Type %7B%0A%0A   public Type result;%0A   public List%3CType%3E formals;%0A%0A   public FUNCTION(Type result, List%3CType%3E formals) %7B%0A      this.result = result;%0A      this.formals = formals;%0A   %7D%0A%0A   public FUNCTION(Type result, Type... formals) %7B%0A      this(result, List.of(formals));%0A   %7D%0A%0A   @Override%0A   public String toString() %7B%0A      StringBuilder builder = new StringBuilder();%0A      builder.append(%22(%22);%0A      formals.map(Type::toString).intersperse(%22,%22);%0A      builder.append(%22-%3E%22);%0A      builder.append(result.toString());%0A      return builder.toString();%0A   %7D%0A%0A%7D%0A

Add FUNCTION type