polygamous.js
function when(condition, f) {
    if (branchMatching(condition, branches).code)  throw ambiguousBranch(condition)

    branches.push({ condition: condition, code: f })
    dispatchTable.add(condition, f)
    return this
  }
function when(condition, f) {
    if (branchMatching(condition, branches).code)  throw ambiguousBranch(condition)

    branches.push({ condition: condition, code: f })
    dispatchTable.add(condition, f)
    return this
  }
### Function when  Adds a branch to a multi-method.  :: @method => A, (B... -> C) -> method