[Haskell-cafe] ReRe: Basic question concerning data constructors

Joost Behrends webmaster at h-labahn.de
Sun Dec 30 13:32:02 EST 2007

Thanks to both fast answers.

there remain problems with Jakes mail for me. This:

> When you define datatypes, you are essentially defining a type-level  
> constructors on the left hand side and (value-level) constructors on  
> the right hand side.

is very useful for me. "data" defines TWO constructors, ok. And if i want
construction on the type level, then the arguments must obviously be
type-"valued", means parameters. From this i conclude, that 

data ClockTime Integer Integer = ...

would never make sense, whatever on the right size. The next isn't
understandable for me - i have not the slightest conception of dependently 
typed languages.

Then i arrive at
> . Now, let's say we had tried defining ClockTime with parameters as  
> you suggested.
>       ClockTime' :: Integer -> Integer -> *
> Do you see the problem? In order to use the ClockTime type  
> constructor, we would have to use Integer values.

Cannot see any problem here - do we NOT want ClockTime to be initialized by two
Integers ? Or is this the main reason for introducing "TOD" - to be able to
 change it without having to make any changes to code using ClockTime ?
To repeat myself - am i right understanding, that this needs a differently named
data constuctor ?

(I cited "abstract type" from the library reference. Not 
important for me at the moment, what that means in Haskell.)

Thanks for your attention, Joost

More information about the Haskell-Cafe mailing list