pandora-io-0.4.9: ...
Safe HaskellNone
LanguageHaskell2010

Pandora.IO

Synopsis

Documentation

data IO a #

A value of type IO a is a computation which, when performed, does some I/O before returning a value of type a.

There is really only one way to "perform" an I/O action: bind it to Main.main in your program. When your program is run, the I/O will be performed. It isn't possible to perform I/O from an arbitrary function, unless that function is itself in the IO monad and called at some point, directly or indirectly, from Main.main.

IO is a monad, so IO actions can be combined using either the do-notation or the >> and >>= operations from the Monad class.

Instances

Instances details
Monoidal (-->) (-->) (:*:) (:*:) IO Source # 
Instance details

Defined in Pandora.IO

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) --> IO a #

Semimonoidal (-->) (:*:) (:*:) IO Source # 
Instance details

Defined in Pandora.IO

Methods

mult :: forall (a :: k) (b :: k). (IO a :*: IO b) --> IO (a :*: b) #

Monad ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Defined in Pandora.IO

Bindable ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Defined in Pandora.IO

Methods

(=<<) :: (a -> IO b) -> IO a -> IO b #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Defined in Pandora.IO

Methods

(<-|-) :: (a -> b) -> IO a -> IO b #

(<-|-|-) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) IO) => (a -> b) -> IO (u a) -> IO (u b) #

(<-|-|-|-) :: (Covariant (->) (Betwixt (->) (Betwixt (->) (->))) v, Covariant (Betwixt (->) (Betwixt (->) (->))) (Betwixt (Betwixt (->) (->)) (->)) u, Covariant (Betwixt (Betwixt (->) (->)) (->)) (->) IO) => (a -> b) -> IO (u (v a)) -> IO (u (v b)) #

Orphan instances

Monoidal (-->) (-->) (:*:) (:*:) IO Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) --> IO a #

Semimonoidal (-->) (:*:) (:*:) IO Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). (IO a :*: IO b) --> IO (a :*: b) #

Monad ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Bindable ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Methods

(=<<) :: (a -> IO b) -> IO a -> IO b #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) IO Source # 
Instance details

Methods

(<-|-) :: (a -> b) -> IO a -> IO b #

(<-|-|-) :: (Covariant (->) (Betwixt (->) (->)) u, Covariant (Betwixt (->) (->)) (->) IO) => (a -> b) -> IO (u a) -> IO (u b) #

(<-|-|-|-) :: (Covariant (->) (Betwixt (->) (Betwixt (->) (->))) v, Covariant (Betwixt (->) (Betwixt (->) (->))) (Betwixt (Betwixt (->) (->)) (->)) u, Covariant (Betwixt (Betwixt (->) (->)) (->)) (->) IO) => (a -> b) -> IO (u (v a)) -> IO (u (v b)) #