Data.Dynamic

Copyright (c) The University of Glasgow 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer [email protected]
Stability experimental
Portability portable
Safe Haskell Trustworthy
Language Haskell2010

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.

module Data.Typeable

The Dynamic type

data Dynamic Source

A value of type Dynamic is an object encapsulated together with its type.

A Dynamic may only represent a monomorphic value; an attempt to create a value of type Dynamic from a polymorphically-typed expression will result in an ambiguity error (see toDyn).

Showing a value of type Dynamic returns a pretty-printed representation of the object's type; useful for debugging.

Converting to and from Dynamic

toDyn :: Typeable a => a -> Dynamic Source

Converts an arbitrary value into an object of type Dynamic.

The type of the object must be an instance of Typeable, which ensures that only monomorphically-typed objects may be converted to Dynamic. To convert a polymorphic object into 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 object back into an ordinary Haskell value of the correct type. See also fromDynamic.

fromDynamic Source

Arguments

:: Typeable a
=> Dynamic

the dynamically-typed object

-> Maybe a

returns: Just a, if the dynamically-typed object has the correct type (and a is its value), or Nothing otherwise.

Converts a Dynamic object back into an ordinary Haskell value of the correct type. See also fromDyn.

Applying functions of dynamic type

dynApply :: Dynamic -> Dynamic -> Maybe Dynamic Source

dynApp :: Dynamic -> Dynamic -> Dynamic Source

dynTypeRep :: Dynamic -> TypeRep Source

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Dynamic.html