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 ( 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
### Function when Adds a branch to a multi - method . ::