hvm 2.0.22

A massively parallel, optimal functional runtime in Rust.
Documentation
@main = x & @t0 ~ (* x)

// all ops
@t0 = (* {n x}) & @t1 ~ (* x) & +10 ~ $([+]  $(+2 n)) // 12
@t1 = (* {n x}) & @t2 ~ (* x) & +10 ~ $([-]  $(+2 n)) // 8
@t2 = (* {n x}) & @t3 ~ (* x) & +10 ~ $([*]  $(+2 n)) // 20
@t3 = (* {n x}) & @t4 ~ (* x) & +10 ~ $([/]  $(+2 n)) // 5
@t4 = (* {n x}) & @t5 ~ (* x) & +10 ~ $([%]  $(+2 n)) // 0
@t5 = (* {n x}) & @t6 ~ (* x) & +10 ~ $([=]  $(+2 n)) // 0
@t6 = (* {n x}) & @t7 ~ (* x) & +10 ~ $([!]  $(+2 n)) // 1
@t7 = (* {n x}) & @t8 ~ (* x) & +10 ~ $([<]  $(+2 n)) // 0
@t8 = (* {n x}) & @t9 ~ (* x) & +10 ~ $([>]  $(+2 n)) // 1
@t9 = (* {n x}) & @tA ~ (* x) & +10 ~ $([&]  $(+2 n)) // 2
@tA = (* {n x}) & @tB ~ (* x) & +10 ~ $([|]  $(+2 n)) // 10
@tB = (* {n x}) & @tC ~ (* x) & +10 ~ $([^]  $(+2 n)) // 8
  
// underflow
@tC = (* {n x}) & @tD ~ (* x) & -8388608 ~ $([-] $(+1 n)) // 8388607

// overflow
@tD = (* {n x}) & @tE ~ (* x) & +8388607 ~ $([+] $(+1 n)) // -8388608

// modulo
@tE = (* {n x}) & @tF ~ (* x) & +3 ~ $([%] $(+2 n)) // +1
@tF = (* {n x}) & @tG ~ (* x) & +3 ~ $([%] $(-2 n)) // +1
@tG = (* {n x}) & @tH ~ (* x) & -3 ~ $([%] $(+2 n)) // -1
@tH = (* {n x}) & @tI ~ (* x) & -3 ~ $([%] $(-2 n)) // -1

@tI = *