import * as R from 'fp-ts/Reader'; import * as RT from 'fp-ts/ReaderT'; import * as B from './Bracket'; export type Service = R.Reader>; export type ResourceOf> = ( S extends Service ? R : never ); export const of: (x: S) => Service = ( RT.of(B.Pointed) ); export const map = RT.map(B.Functor); export const ap = RT.ap(B.Apply); export const apPar = RT.ap(B.ApplyPar); export const chain = RT.chain(B.Chain); export const fromReader: (reader: R.Reader) => Service = ( RT.fromReader(B.Pointed) );