Also, when declaring named fields of a type, such as
data Data1 = Data1{ok1::Bool}
data Data2 = Data2{ok2::Bool}
the field names for different type also have to be unique.
All function declarations in a module have to be unique. And, e.g., the data constructor Data1 is a function with type Bool->Data1 and as such it has to be globally unique as well.
Isn't that annoying? Keeping all the names unique is no easy task in myYou may have a look at TREX or OHaskell. In TREX (available with Hugs) and OHaskell
opinion. Wouldn't it be nice if we can have something similar to structure
fields in C? Or maybe this is already present and I'm just being ignorant?
(http://www.math.chalmers.se/~nordland/ohaskell/) you can define records.
For instance, this is a valid OHaskell program:
data Monochrome = Black | White data Color > Monochrome = Red | Blue
Thereby the data type Color inherits the constructors Black and White from Monochrome.
Even so, it is not possible to use the same constructors without establishing a subtype relationship.
AFAIK Haskell98 lacks this possibility. But you can use named fields in the same declaration
as long as their type remains the same.
Ciao, Steffen
_______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
