Portability | non-portable |
---|---|

Stability | experimental |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Safe Haskell | None |

# Documentation

A quantity with a lower-bound on its probability mass. This represents
a 'probable value' as a `Monad`

that you can use to calculate progressively
less likely consequences.

*NB:* These probabilities are all stored in the log domain. This enables us
to retain accuracy despite very long multiplication chains. We never add
these probabilities so the additional overhead of working in the log domain
is never incurred, except on transitioning in and out.

This is most useful for discrete types, such as
small `Integral`

instances or a `Bounded`

`Enum`

like
`Bool`

.

Also note that `(`

and `&?`

)`(`

are able to use knowledge about the
function to get better precision on their results than naively using
`|?`

)`liftA2`

(`&&`

)

Monad Mass | |

Functor Mass | |

Typeable1 Mass | |

Applicative Mass | |

Foldable Mass | |

Traversable Mass | |

Serial1 Mass | |

Comonad Mass | |

ComonadApply Mass | |

Hashable1 Mass | |

Pointed Mass | |

Copointed Mass | |

Apply Mass | |

Bind Mass | |

Extend Mass | |

Unbox a => Vector Vector (Mass a) | |

Unbox a => MVector MVector (Mass a) | |

Eq a => Eq (Mass a) | |

Data a => Data (Mass a) | |

Ord a => Ord (Mass a) | |

Read a => Read (Mass a) | |

Show a => Show (Mass a) | |

Generic (Mass a) | |

Monoid a => Monoid (Mass a) | |

Binary a => Binary (Mass a) | |

Serial a => Serial (Mass a) | |

Serialize a => Serialize (Mass a) | |

NFData a => NFData (Mass a) | |

Hashable a => Hashable (Mass a) | |

Semigroup a => Semigroup (Mass a) | |

Serialize a => SafeCopy (Mass a) |

(|?) :: Mass Bool -> Mass Bool -> Mass BoolSource

Calculate the logical `or`

of two booleans with confidence lower bounds.