3 * make `end' align on `in' when possible
5 * if indentation is non-obvious, return a list of possible indentations
6 and choose the first unless the current is one of the possible choices.
8 * M-| with datatypes gives "| => " instead of "| of "
10 * tab at end or beginning of buffer infinite-loop
12 * ignore warnings in C-c `
14 * improve the run-sml to allow running on another machine and to take args
16 * C-c ` tends to switch to another window
18 * sample problematic indentations:
20 let fun toStringFKind {isrec,cconv,inline,...} =
21 (if isSome isrec then "R" else "")^
22 (if cconv = F.CC_FCT then "FCT" else "FUN")^
26 let fun cfun (fk,f,args,body) = let
27 in (fk, f, args, loop body)
58 in clet1 (fn [nv] => (Conlv, nv, ndc),
59 fn ([nv],nle) => F.CON(dcon, tycs, nv, lv, nle))
73 app (fn (fk,f,args,body as F.APP(F.VAR g,vs)) =>
75 orelse vs = (map (F.VAR o #1) args) andalso
79 in substitute(f, val2sval g, g)
82 addbind (f, Fun(f, body, args, fk, od))
83 else addbind (f, Fun(f, body, args, fk, od))
85 addbind (f, Fun(f, body, args, fk, od)))