Matrix.ap = curry(function (f, M) {
  return Matrix.of(f).ap(M)
})