-
Notifications
You must be signed in to change notification settings - Fork 4
/
GRIEVANCES
41 lines (25 loc) · 1.47 KB
/
GRIEVANCES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
- opening two modules that introduce colliding names should be an error or
at least a warning
- an operator/operand mismatch occurs between two record types that
have N correctly unifying fields and M non-unifying fields should
hilight the non-unifying fields in some fashion (currently you
have to eyeball it, which is painful on large fields)
- error messages should demonstrate the source context by
"ASCII-underlining" or ocaml-like highlighting
- you should be able to declare a top-level function type, not just inline
- type inference messages are nigh-useless (okay, fine, open research
problem)
- uncaught exceptions that propagate to the top level appear to silently
disappear, requiring every incompete case statement to include
a "catch-all" clause that prints out appropriate debugging information.
Java does this better, by printing out the full stack trace.
- error messages at the REPL are sent to stdout, not stderr
- there's no analog of perl -e to evaluate one-liners from the shell
- heap image files have architecture-dependent filename suffixes, which
makes it especially hard to create makefile targets for them
- there's no way to inspect a type from the REPL
- documentation is completely disorganized, out of date, and incomplete
- no GNU readline at the REPL
- no nested signatures (e.g., signatures declared inside of structures)
- no polymorphic recursion! this has bitten us a couple times
- no recursive modules