code: function mreduce(m, xs) {
    if(!isMonoid(m)) {
      throw new TypeError(
        'mreduce: Monoid required for first argument'
      )
    }
  
    if(!isFoldable(xs)) {
      throw new TypeError(
        'mreduce: Foldable required for second argument'
      )
    }
  
    return mconcatMap(m, identity, xs).valueOf()
  }
docs: mreduce : Monoid M => M -> ([ a ] | List a) -> a