ins: num1, num2
out: output
verbose: 0
do:
  - parallel: # do these things in parallel
    - do:
      - if: "num1 >= num2"
        do:
          - "num2 --> bottom"
          - "num1 --> top"
        else:
          - "num1 --> bottom"
          - "num2 --> top"
      - "[] --> evens"
      - "bottom --> x"
      - do:
        - if: "x%2 == 0"
          do: "x --> evens[evens.length]"
        - x+1 --> x
        while: "x <= top"
    - "[$.loadJs(_chain_cwd+\"circle.js\")] -> info.circle"
    - "(7) -> [$.loadJs(_chain_cwd+\"circle.js\", \"area\")] -> info.area"
  - "(evens, \", \") -> {$.join} -> info.evens"
  - "(\"Hello \", \"world\") -> {$.concat} -> info[\"helloWorld\"]"
  - ins:
    - "Hello "
    - "sekai"
    out: info["helloSekai"]
    do: "{$.concat}"
  - "(_chain_cwd+\"square.chiml\", 10) -> [_runChain] -> info.square"
  - "([info.helloWorld, info.helloSekai, info.evens, info.circle, info.area, info.square], \"\\n\") -> {$.join} -> output"
catch: "typeof(num1) !== \"number\" || typeof(num2) !== \"number\""
throw: num1 dan num2 should be number
