Hi Ryan, I am really enjoying your series of articles about fp-ts. The pragmatic approach and real life usecases help a lot. I'd like to give the following feedback and would be interested to see your views on that: in your examples across the series you are importing from fp-ts/lib/, but that one is the commonjs version. Wouldn't it be more flexible to import from fp-ts instead and rely on the main and module entry point in the package.json for fp-ts to locate the best version, e.g. import * as A from 'fp-ts/Array' import { pipe } from 'fp-ts/function' ... in the pipe examples you chose a version of the operators that accepts the array as a parameter. This looks a bit asymmetric to the subsequent operators that use the raw transformer function. I wonder why you chose this style instead of e.g. import * as A from 'fp-ts/Array' import { pipe } from 'fp-ts/function' const foo = [1, 2, 3, 4, 5] const sum = pipe( foo, A.map((x) => x - 1), A.filter((x) => x % 2 === 0), A.reduce(0, (prev, next) => prev + next), ) console.log(sum) // 6 -