W3cubDocs

/Haskell 8

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.

The Dynamic type

data Dynamic where 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.

Constructors

Dynamic :: forall a. TypeRep a -> a -> Dynamic
Instances
Instances details
Show Dynamic

Since: base-2.1

Instance details

Defined in Data.Dynamic

Exception Dynamic

Since: base-4.0.0.0

Instance details

Defined in Data.Dynamic

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

:: forall a. 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 -> SomeTypeRep Source

Convenience re-exports

class Typeable (a :: k) Source

The class Typeable allows a concrete representation of a type to be calculated.

Minimal complete definition

typeRep#

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