Hello, I need something like data Type = TCon String {lmtc::Maybe String} ... but this does not seem to be possible. Instead I have to waste identifiers: data Type = TCon {senseless::String,lmtc::Maybe String} ... Why? Are there any formal reasons against the above declaration? Or do I miss something? Thanks, Steffen -- Steffen Mazanek - www.steffen-mazanek.de - GPG: 791F DCB3 Haskell, that's where I just curry until fail, unwords any error, drop all undefined, maybe break, otherwise in sequence span isControl and take max $, id: (d:[])
Ok, I had missed something: I can write instead: data Type = TCon String (Maybe String) ... and declare a function lmtc lmtc (TCon _ x) = x ... But why not allow syntactic sugar? Sorry, Steffen -- Steffen Mazanek - www.steffen-mazanek.de - GPG: 791F DCB3 Haskell, that's where I just curry until fail, unwords any error, drop all undefined, maybe break, otherwise in sequence span isControl and take max $, id: (d:[])
...it's also not the same...for instance, in this new version you cannot say:
foo = bar { thing = Nothing }
which you could say given:
data Foo = Foo String { thing :: Maybe String }
I'd guess that this is disallowed just for consistency. I think it would just be too many rules to keep track of something with a combination of multiple named fields and multiple unnamed fields. I don't know though... You can always give them names like "_foo1" etc., in which case ghc probably won't warn about them, as is the case with methods whose names begin with underscores... - Hal -- Hal Daume III | hdaume@isi.edu "Arrest this man, he talks in maths." | www.isi.edu/~hdaume On Tue, 3 Jun 2003, Steffen Mazanek wrote:
Ok, I had missed something: I can write instead:
data Type = TCon String (Maybe String) ...
and declare a function lmtc
lmtc (TCon _ x) = x ...
But why not allow syntactic sugar?
Sorry, Steffen
-- Steffen Mazanek - www.steffen-mazanek.de - GPG: 791F DCB3
Haskell, that's where I just curry until fail, unwords any error, drop all undefined, maybe break, otherwise in sequence span isControl and take max $, id: (d:[]) _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
participants (2)
-
Hal Daume III -
Steffen Mazanek