|
- /**
- * Mutable references in the `IO` monad
- *
- * @since 2.0.0
- */
- import { IO } from './IO'
- /**
- * @example
- * import { io } from 'fp-ts/IO'
- * import { newIORef } from 'fp-ts/IORef'
- *
- * assert.strictEqual(io.chain(newIORef(1), ref => io.chain(ref.write(2), () => ref.read))(), 2)
- *
- * @category model
- * @since 2.0.0
- */
- export declare class IORef<A> {
- private value
- /**
- * @since 2.0.0
- */
- readonly read: IO<A>
- constructor(value: A)
- /**
- * @since 2.0.0
- */
- write(a: A): IO<void>
- /**
- * @since 2.0.0
- */
- modify(f: (a: A) => A): IO<void>
- }
- /**
- * @category constructors
- * @since 2.0.0
- */
- export declare function newIORef<A>(a: A): IO<IORef<A>>
|