Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- prospect :: (Functor f, Generic1 f, GExplore f (Rep1 f)) => Free f a -> (Maybe a, [f ()])
- survey :: Functor f => (forall b. f (Free f b) -> Free f b) -> Free f a -> (Maybe a, [f ()])
- explore :: forall f a. (Generic1 f, GExplore f (Rep1 f)) => f a -> a
- guess :: a
- given :: Alternative f => (a -> f b) -> a -> f b
- verify :: Alternative f => a -> f a
- ensure :: (Alternative f, NFData a) => a -> f a
- proceed :: (Alternative f, NFData a) => (a -> f b) -> a -> f b
- data Guess = Guess

# Prospecting of free monads

prospect :: (Functor f, Generic1 f, GExplore f (Rep1 f)) => Free f a -> (Maybe a, [f ()]) Source #

Perform a best-effort analysis of a free monad by automatically
`explore`

ing it.

:: Functor f | |

=> (forall b. f (Free f b) -> Free f b) | The following function. Consider using |

-> Free f a | |

-> (Maybe a, [f ()]) |

Perform a best-effort analysis of a free monad.

# Guesswork

given :: Alternative f => (a -> f b) -> a -> f b Source #

verify :: Alternative f => a -> f a Source #

proceed :: (Alternative f, NFData a) => (a -> f b) -> a -> f b Source #

Like `given`

, but much stricter.

The underlying machinery of `guess`

.

## Instances

Eq Guess Source # | |

Show Guess Source # | |

Exception Guess Source # | |

Defined in Control.Monad.Prospect toException :: Guess -> SomeException # fromException :: SomeException -> Maybe Guess # displayException :: Guess -> String # |