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 occurring in a valid program 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