The cpsfy Javascript library provides tiny but powerful goodies for Continuation-Passing-Style (CPS) functions with functional composability backed by category theory foundations. Here is a demo:

We want to read the content of name.txt into string str and remove spaces from both ends of str. If the resulting str is nonempty, we read the content of the file with that name into string content, otherwise do nothing. Finally we split the content string into array of lines. If there are any errors on the way, we want to handle them at the very end in a separate function without any change to our main code.

```js
//function returning CPS function with 2 callbacks
const readFileCps = file => (onRes, onErr) =>  
  require('fs').readFile(file, (err, content) => {
    err ? onErr(err) : onRes(content)
  })

// the provided `CPS` operator wraps a CPS function to provide the API methods
const getLines = CPS(readFileCps('name.txt'))
  // map applies function to the file content
  .map(file => file.trim()) 
  .filter(file => file.length > 0)
  // chain applies function that returns a CPS function
  .chain(file => readFileCps(file))
  .map(text => text.split('\n'))
// => CPS function with 2 callbacks

// To use, simply pass callbacks in the same order
getLines(
  lines => console.log(lines),  // onRes callback
  err => console.error(err)  // onErr callback
)
```

Note how we handle error at the end without affecting the main logic!

Please provide an example using this library. You must include 3 functions: fetchData (is async), process (requires a callback), and report. This simulates an common workflow for data retrieving and reporting.