endpoint()

  .map(p#, (body, p#) -> Body)

  .map(p#, (body, p#) -> void)

  .pipe(p).pipe(p#, (val, [body], p#) -> T)...map(#)

instead of map: tap, which returns no value and keeps body
