/** * Lift a computation from the `IO` monad * * @since 2.0.0 */ import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3, URIS4, Kind4 } from './HKT' import { IO } from './IO' import { Monad, Monad1, Monad2, Monad3, Monad2C, Monad3C, Monad4 } from './Monad' /** * @category type classes * @since 2.0.0 */ export interface MonadIO extends Monad { readonly fromIO: (fa: IO) => HKT } /** * @category type classes * @since 2.0.0 */ export interface MonadIO1 extends Monad1 { readonly fromIO: (fa: IO) => Kind } /** * @category type classes * @since 2.0.0 */ export interface MonadIO2 extends Monad2 { readonly fromIO: (fa: IO) => Kind2 } /** * @category type classes * @since 2.0.0 */ export interface MonadIO2C extends Monad2C { readonly fromIO: (fa: IO) => Kind2 } /** * @category type classes * @since 2.0.0 */ export interface MonadIO3 extends Monad3 { readonly fromIO: (fa: IO) => Kind3 } /** * @category type classes * @since 2.2.0 */ export interface MonadIO3C extends Monad3C { readonly fromIO: (fa: IO) => Kind3 } /** * @category type classes * @since 2.4.4 */ export interface MonadIO4 extends Monad4 { readonly fromIO: (fa: IO) => Kind4 }