Copyright | (C) 2011-2013 Edward Kmett |
---|---|

License | BSD-style (see the file LICENSE) |

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

Stability | experimental |

Portability | non-portable |

Safe Haskell | Unsafe |

Language | Haskell2010 |

- unsafeCoerceConstraint :: a :- b
- unsafeDerive :: Newtype n o => (o -> n) -> t o :- t n
- unsafeUnderive :: Newtype n o => (o -> n) -> t n :- t o
- unsafeApplicative :: forall m a. Monad m => (Applicative m => m a) -> m a
- unsafeAlternative :: forall m a. MonadPlus m => (Alternative m => m a) -> m a

# Documentation

unsafeCoerceConstraint :: a :- b Source

Coerce a dictionary unsafely from one type to another

unsafeDerive :: Newtype n o => (o -> n) -> t o :- t n Source

Coerce a dictionary unsafely from one type to a newtype of that type

unsafeUnderive :: Newtype n o => (o -> n) -> t n :- t o Source

Coerce a dictionary unsafely from a newtype of a type to the base type

# Sugar

unsafeApplicative :: forall m a. Monad m => (Applicative m => m a) -> m a Source

Construct an Applicative instance from a Monad

unsafeAlternative :: forall m a. MonadPlus m => (Alternative m => m a) -> m a Source

Construct an Alternative instance from a MonadPlus