aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/analysis.lux
blob: b96bd9ba20d6f5311696d875ba5b140b997caffb (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
(;module:
  lux)

(type: #export #rec Pattern
  (#BindP Nat)
  (#BoolP Bool)
  (#NatP Nat)
  (#IntP Int)
  (#DegP Deg)
  (#RealP Real)
  (#CharP Char)
  (#TextP Text)
  (#TupleP (List Pattern))
  (#VariantP Nat Nat Pattern))

(type: #export #rec Analysis
  #Unit
  (#Bool Bool)
  (#Nat Nat)
  (#Int Int)
  (#Deg Deg)
  (#Real Real)
  (#Char Char)
  (#Text Text)
  (#Sum (Either Analysis Analysis))
  (#Product Analysis Analysis)
  (#Case Analysis (List [Pattern Analysis]))
  (#Function Scope Analysis)
  (#Apply Analysis Analysis)
  (#Procedure Text (List Analysis))
  (#Relative Ref)
  (#Absolute Ident))