Data.Dynamic (original) (raw)

Contents

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

The Dynamic type

data Dynamic where Source #

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)

fromDyn Source #

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#