import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4, } from 'fp-ts/HKT' import * as IO from 'fp-ts/IO' import * as MIO from 'fp-ts/MonadIO' export function salt( M: MIO.MonadIO4, ): ( seed: IO.IO, f: (salt: A) => Kind4, ) => Kind4 export function salt( M: MIO.MonadIO3, ): ( seed: IO.IO, f: (salt: A) => Kind3, ) => Kind3 export function salt( M: MIO.MonadIO2, ): (seed: IO.IO, f: (salt: A) => Kind2) => Kind2 export function salt( M: MIO.MonadIO1, ): (seed: IO.IO, f: (salt: A) => Kind) => Kind export function salt(M: MIO.MonadIO) { return (seed: IO.IO, f: (salt: A) => HKT) => M.chain(M.fromIO(seed), f) }