/**
* `IOOption` represents a synchronous computation that either yields a value of type `A` or nothing.
*
* If you want to represent a synchronous computation that never fails, please see `IO`.
* If you want to represent a synchronous computation that may fail, please see `IOEither`.
*
* @since 2.12.0
*/
import { Alt1 } from './Alt.js';
import { Alternative1 } from './Alternative.js';
import { Applicative1 } from './Applicative.js';
import { Apply1 } from './Apply.js';
import * as chainable from './Chain.js';
import { Compactable1 } from './Compactable.js';
import { Either } from './Either.js';
import { Filterable1 } from './Filterable.js';
import { FromEither1 } from './FromEither.js';
import { FromIO1 } from './FromIO.js';
import { LazyArg } from './function.js';
import { Functor1 } from './Functor.js';
import * as I from './IO.js';
import { IOEither } from './IOEither.js';
import { Monad1 } from './Monad.js';
import { MonadIO1 } from './MonadIO.js';
import * as O from './Option.js';
import { Pointed1 } from './Pointed.js';
import { Predicate } from './Predicate.js';
import { ReadonlyNonEmptyArray } from './ReadonlyNonEmptyArray.js';
import { Refinement } from './Refinement.js';
import { Separated } from './Separated.js';
import { Zero1 } from './Zero.js';
type IO = I.IO;
type Option = O.Option;
/**
* @category model
* @since 2.12.0
*/
export interface IOOption extends IO