Idris2Doc : Serene.Core.Result

Serene.Core.Result

Definitions

recordIdentity : Type->Type
Totality: total
Visibility: public export
Constructor: 
Id : a->Identitya

Projection: 
.runIdentity : Identitya->a

Hints:
ApplicativeIdentity
FunctorIdentity
MonadIdentity
TransformResultIdentityIO
.runIdentity : Identitya->a
Totality: total
Visibility: public export
runIdentity : Identitya->a
Totality: total
Visibility: public export
interfaceMonadResult : ((Type->Type) ->Type->Type) -> (Type->Type) ->Type
  Abstraction over monad transformers that can express pure failure
or success.

The functional dependency `| m` records that the choice of inner
monad `m` uniquely determines the transformer `r`. Note: Like `| m -> r` in
haskell.

Parameters: r, m
Constraints: Monad m
Methods:
failure : HasMetadatamd=>md->ErrorType->String->rma
ok : a->rma

Implementation: 
Monadm=>MonadResultResultTm
failure : MonadResultrm=>HasMetadatamd=>md->ErrorType->String->rma
Totality: total
Visibility: public export
ok : MonadResultrm=>a->rma
Totality: total
Visibility: public export
recordResultT : (Type->Type) ->Type->Type
  A monad transformer whose inner computation may fail with a
non-empty list of errors.

Totality: total
Visibility: public export
Constructor: 
MkResultT : m (EitherErrorLista) ->ResultTma

Projection: 
.runResultT : ResultTma->m (EitherErrorLista)

Hints:
Monadm=>Applicative (ResultTm)
Functorm=>Functor (ResultTm)
HasIOm=>HasIO (ResultTm)
Monadm=>Monad (ResultTm)
Monadm=>MonadResultResultTm
.runResultT : ResultTma->m (EitherErrorLista)
Totality: total
Visibility: public export
runResultT : ResultTma->m (EitherErrorLista)
Totality: total
Visibility: public export
lift : Monadm=>ma->ResultTma
  Lift a computation from the inner monad into 'ResultT'.

Totality: total
Visibility: public export
Result : Type->Type
  A pure result computation backed by the 'Identity' monad.
Equivalent to `Either ErrorList a`, but with a uniform interface.

Totality: total
Visibility: public export
ResultIO : Type->Type
  A result computation that may also perform 'IO'.

Totality: total
Visibility: public export
runResult : Resulta->EitherErrorLista
  Unwrap a pure 'Result', yielding `Either ErrorList a`.

Totality: total
Visibility: public export
runResultIO : ResultIOa->IO (EitherErrorLista)
  Run a 'ResultIO' computation, returning the result inside 'IO'.

Totality: total
Visibility: public export
absurdResult : HasMetadatamd=>Monadm=>md->ResultTma
  Produce an 'Absurd' error annotated with a source file and line.

Totality: total
Visibility: public export
todo : HasMetadatamd=>Monadm=>md->String->ResultTma
  Mark an unimplemented branch with a 'TODO' error.

Totality: total
Visibility: public export
interfaceTransformResult : (Type->Type) -> (Type->Type) ->Type
  Transform the inner monad of a 'ResultT' from `m` to `n`.

Instantiate this interface for each pair of monads you need to
convert between. The built-in instance handles the common
`Result` → `ResultIO` case.

```idris
liftToIO : Result a -> ResultIO a
liftToIO = transform
```

Parameters: m, n
Constraints: Monad m, Monad n
Methods:
transform : ResultTma->ResultTna

Implementation: 
TransformResultIdentityIO
transform : TransformResultmn=>ResultTma->ResultTna
Totality: total
Visibility: public export