polygamous.js
function branchMatching(value, branches) {
  var i = branches.length
  while (i--)
    if (equal(value, branches[i].condition))  return branches[i]

  return { condition: null, code: null }
}
function branchMatching(value, branches) {
  var i = branches.length
  while (i--)
    if (equal(value, branches[i].condition))  return branches[i]

  return { condition: null, code: null }
}
function branchMatching ( value , branches ) { var i = branches . length while ( i -- ) if ( equal ( value , branches [ i ] . condition ) ) return branches [ i ] return { condition : null , code : null } }
### Function branchMatching  Returns the branch matching a dispatch value.  :: A, [branch A] -> maybe (branch A)
### Function branchMatching Returns the branch matching a dispatch value . :: A [ branch A ] - > maybe ( branch A )