packages feed

descript-lang-0.2.0.0: test-resources/refactors/Macros.free-bind-complex-new.dscr

//Macros

UZero[].
USucc[prev].
Sub[a, b].
Neg[a].

Nat[].
Untyped[].
Zero[].
Succ[prev].
Add[a, b].

//Macros
UZero[]: Zero[] | Untyped[]
USucc[prev]: Succ[prev: prev<USucc] | Untyped[]

Add3[a: Neg[a], b, c: Ignore[a]]: Add[
  a: a<Add3>a<Neg
  b: c<Add3>a<Ignore | b<Add3
]

---

Add[a: Nat[], b: Nat[]] | Untyped[]: Nat[]
Add3[a: Neg[a: Zero[]], b, c: Ignore[a]]: c<Add3>a<Ignore | b<Add3
Add[a: Succ[prev], b]: Add[a: a<Add>prev<Succ, b: Succ[prev: b<Add]]

UZero[]: Zero[] | Nat[]
USucc[prev: Nat[]]: Nat[]

Add[
  a: Succ[prev: Succ[prev: Succ[prev: Zero[] | Untyped[]] | Untyped[]] | Untyped[]] | Untyped[]
  b: Succ[prev: Succ[prev: Zero[] | Untyped[]] | Untyped[]] | Untyped[]
] | Untyped[]?