code: function lastToAsync(left, last) {
    if(isFunction(last)) {
      return function(x) {
        const m = last(x)
  
        if(!isSameType(Last, m)) {
          throw new TypeError('lastToAsync: Last returning function required for second argument')
        }
  
        return applyTransform(left, m)
      }
    }
  
    if(isSameType(Last, last)) {
      return applyTransform(left, last)
    }
  
    throw new TypeError('lastToAsync: Last or Last returning function required for second argument')
  }
docs: lastToAsync : e -> Last a -> Async e a lastToAsync : e -> (a -> Last b) -> a -> Async e b