summaryrefslogtreecommitdiff
path: root/cfn/README
blob: 80a25c1905707a8552777ce6ef3e85c55087a46a (about) (plain)
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
Whats what in the cfn.

Language generated by cfn contains these ast node types:
  lambda
  let
  if
  case   -- restriction: all patterns must be either literals or
                         a constructor with var and wildcard args
  app
  var-ref
  con-ref
  const
  con-number
  sel
  is-constructor

Transformations to do:
  Convert lists to explicit calls to cons
  Simplify patterns
  Remove sequences
  Remove list comprehensions
  Remove sections
  Reduce patterns on lhs of decls
  Reduce patterns in function args
  Convert where decls to let statements
  Convert guarded-expressions to if - then - else form

Done earlier:
  signdecls are removed in scoping
  exp-signs are removed in typechecker
  prec parser removes `negate' & pp-* nodes