tweak
with more type annotations
add labels :-)
add labels --ready to split OPT --
replace OPT with ?
try to support opt
tweak
tweak
allow as
replace {} with as finishe
tweak
tweak, fix a subtle bug in terms of interface
twea
fix the nested pattern bug
try empty environment first
get rid of Opt primitive
tweak
tweak the order
tweak
Update demo/plc to work with current Fan.
No (deliberate) functional changes.

Changes to make code compile:
  removed many trailing ';'s
  changed many '[' ... | ... ']' to '|' ... | .. (in fun, match, etc)
  changed many list 'a to 'a list (and option)
  changed many '[x::xs]' to '(x::xs)' (which seemed the right thing but is clearly different)

Changes caused by Fan changed:
  {:xxx| .. |} changed to %xxx{...}
  OPT changed to ?
  x{y} to x as y
  $(..) to %{..}
  -> (in rules) to nothing
  $list: to ${xx_of_list ..}
  String -> Stringf
  LocUtil -> Locf
  Gram -> Gramf
  Fan.Syntax.Options to Foptions
  FanArg to Arg

Nasties:
  PlParser: 69 handling of Integer is probably not right
  PlParser: 84 had trouble getting Fan to accept this
  PlParser: 98 do I want to call this here?  I thought ye
  PlTranslate: 163-167 or_of_list should be in Ast_gen
  PlTranslate: 184-188 is much worse
  PlTranslate: 600-612 had trouble with types