# Generated by Bara Lang import cljnim_runtime_js proc square*(x: CljVal): CljVal = cljMul(@[x, x]) proc factorial*(n: CljVal): CljVal = if cljIsTruthy(cljNumEq(@[n, cljInt(0)])): result = cljInt(1) else: result = cljMul(@[n, factorial(cljSub(@[n, cljInt(1)]))]) proc greet*(name: CljVal): CljVal = cljStrConcat(@[cljString("Hello, "), name, cljString("!")])