orchestrator.bosatsu → JS
package Demo/Orchestrator
from Demo/Compute import fib, factorial
# Validation logic (runs in JS)
def validate_fib_input(n: Int) -> Bool:
match cmp_Int(n, 0):
case LT: False
case _: cmp_Int(n, 40) matches LT | EQ
# Orchestration (runs in JS, calls WASM)
def compute_fib_sequence(n: Int) -> List[(Int, Int)]:
range(n.add(1)).map(i -> (i, fib(i)))
compute.bosatsu → WASM
package Demo/Compute
export fib, factorial
# Heavy computation (runs in WASM)
def fib(n: Int) -> Int:
int_loop(n, (0, 1), (i, acc) ->
(a, b) = acc
(i.sub(1), (b, a.add(b))))
.fst
def factorial(n: Int) -> Int:
int_loop(n, 1, (i, acc) ->
(i.sub(1), acc.times(i))).snd