morley-0.5.0: Developer tools for the Michelson Language

Safe HaskellNone
LanguageHaskell2010

Util.Typeable

Description

Utility for Typeable.

Synopsis

Documentation

gcastE :: forall a b t. (Typeable a, Typeable b) => t a -> Either Text (t b) Source #

Like gcast, casts some container's elements, producing informative error on mismatch.

eqP :: (Typeable a, Typeable b) => Proxy a -> Proxy b -> Maybe (a :~: b) Source #

Proxy version of eqT.

eqParam1 :: forall a1 a2 t. (Typeable a1, Typeable a2, Eq (t a1)) => t a1 -> t a2 -> Bool Source #

Suppose you have a data type X with parameter a and you have two values: `x1 :: X a1` and `x2 :: X a2`. You can't compare them using ==, because they have different types. However, you can compare them using eqParam1 as long as both parameters are Typeable.

eqParam2 :: forall a1 a2 b1 b2 t. (Typeable a1, Typeable a2, Typeable b1, Typeable b2, Eq (t a1 b2)) => t a1 b1 -> t a2 b2 -> Bool Source #

Version of eqParam1 for types with 2 parameters.

eqParam3 :: forall a1 a2 b1 b2 c1 c2 t. (Typeable a1, Typeable a2, Typeable b1, Typeable b2, Typeable c1, Typeable c2, Eq (t a1 b1 c1)) => t a1 b1 c1 -> t a2 b2 c2 -> Bool Source #

Version of eqParam1 for types with 3 parameters.

eqExt :: forall a1 a2. (Typeable a1, Typeable a2, Eq a1) => a1 -> a2 -> Bool Source #

Compare two entries of completely different types.

compareExt :: forall a1 a2. (Typeable a1, Typeable a2, Ord a1) => a1 -> a2 -> Ordering Source #

Extension of eqExt to compare function.