constraints-0.12: Constraint manipulation
Copyright(C) 2011-2015 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellUnsafe
LanguageHaskell2010

Data.Constraint.Unsafe

Contents

Description

 
Synopsis

Documentation

class a ~R# b => Coercible (a :: k) (b :: k) #

Instances

Instances details
HasDict (Coercible a b) (Coercion a b) Source # 
Instance details

Defined in Data.Constraint

Methods

evidence :: Coercion a b -> Dict (Coercible a b) Source #

unsafeCoerceConstraint :: a :- b Source #

Coerce a dictionary unsafely from one type to another

unsafeDerive :: Coercible n o => (o -> n) -> t o :- t n Source #

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

unsafeUnderive :: Coercible 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