hvm 2.0.22

A massively parallel, optimal functional runtime in Rust.
Documentation
@IO/Call = (a (b (c (d ((@IO/Call/tag (a (b (c (d e))))) e)))))

@IO/Call/tag = 1

@IO/Done = (a (b ((@IO/Done/tag (a (b c))) c)))

@IO/Done/tag = 0

@IO/MAGIC = (13683217 16719857)

@IO/bind = ((@IO/bind__C2 a) a)

@IO/bind__C0 = (* (b (a c)))
  & @undefer ~ (a (b c))

@IO/bind__C1 = (* (* (a (b ((c d) (e g))))))
  & @IO/Call ~ (@IO/MAGIC (a (b ((c f) g))))
  & @IO/bind ~ (d (e f))

@IO/bind__C2 = (?((@IO/bind__C0 @IO/bind__C1) a) a)

@IO/wrap = a
  & @IO/Done ~ (@IO/MAGIC a)

@String/Cons = (a (b ((@String/Cons/tag (a (b c))) c)))

@String/Cons/tag = 1

@String/Nil = ((@String/Nil/tag a) a)

@String/Nil/tag = 0

@call = (a (b c))
  & @IO/Call ~ (@IO/MAGIC (a (b (@call__C0 c))))

@call__C0 = a
  & @IO/Done ~ (@IO/MAGIC a)

@main = i
  & @IO/bind ~ (e ((((f f) (@IO/wrap h)) h) i))
  & @call ~ (d (123 e))
  & @String/Cons ~ (79 (c d))
  & @String/Cons ~ (80 (b c))
  & @String/Cons ~ (69 (a b))
  & @String/Cons ~ (78 (@String/Nil a))

@test-io = 1

@undefer = (((a a) b) b)