CurryInfo: base-3.4.0 / Prelude.Data

definition: Info
 
class Data a where
  (===)  :: a -> a -> Bool
  aValue :: a
documentation: Info
 
The class `Data` defines a strict equality operator `===`
and a non-deterministic operation `aValue` which yields
all values of the given type.
To ensure that the operator `===` always corresponds to the
syntactic equality of values and `aValue ` enumerates all values,
instances of `Data` are automatically derived and cannot be
defined in a valid Curry program.
For data types contain functional values, `Data` instances
are not derived.
Free variables have always a data context to ensure that possible
values for the type of the free variable can be enumerated.

Note that the class `Data` is different from the class `Eq`,
since the latter defines only an equivalence relation rather
than syntactic equality.
methods: Info
 ["(===) :: a -> a -> Bool","aValue :: a"]
name: Info
 Data