Data.Dynamic (original) (raw)
Contents
- The Dynamic type
- Converting to and from Dynamic
- Applying functions of dynamic type
- Convenience re-exports
Description
The Dynamic interface provides basic support for dynamic types.
Operations for injecting values of arbitrary type into a dynamically typed value, Dynamic, are provided, together with operations for converting dynamic values into a concrete (monomorphic) type.
Synopsis
- data Dynamic where
- toDyn :: Typeable a => a -> Dynamic
- fromDyn :: Typeable a => Dynamic -> a -> a
- fromDynamic :: Typeable a => Dynamic -> Maybe a
- dynApply :: Dynamic -> Dynamic -> Maybe Dynamic
- dynApp :: Dynamic -> Dynamic -> Dynamic
- dynTypeRep :: Dynamic -> SomeTypeRep
- class Typeable (a :: k)
A value of type [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
is an object encapsulated together with its type.
A [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
may only represent a monomorphic value; an attempt to create a value of type [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
from a polymorphically-typed expression will result in an ambiguity error (see [toDyn](Data-Dynamic.html#v:toDyn "Data.Dynamic")
).
[Show](Prelude.html#t:Show "Prelude")
ing a value of type [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
returns a pretty-printed representation of the object's type; useful for debugging.
Instances
Instances details
Converting to and from Dynamic
toDyn :: Typeable a => a -> Dynamic Source #
Converts an arbitrary value into an object of type [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
.
The type of the object must be an instance of [Typeable](Data-Dynamic.html#t:Typeable "Data.Dynamic")
, which ensures that only monomorphically-typed objects may be converted to[Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
. To convert a polymorphic object into [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
, give it a monomorphic type signature. For example:
toDyn (id :: Int -> Int)
Arguments
:: Typeable a | |
---|---|
=> Dynamic | the dynamically-typed object |
-> a | a default value |
-> a | returns: the value of the first argument, if it has the correct type, otherwise the value of the second argument. |
Converts a [Dynamic](Data-Dynamic.html#t:Dynamic "Data.Dynamic")
object back into an ordinary Haskell value of the correct type. See also [fromDynamic](Data-Dynamic.html#v:fromDynamic "Data.Dynamic")
.
Applying functions of dynamic typeConvenience re-exports
class Typeable (a :: k) Source #
The class [Typeable](Data-Dynamic.html#t:Typeable "Data.Dynamic")
allows a concrete representation of a type to be calculated.
Minimal complete definition
typeRep#