Hello Claus,

Monday, March 6, 2006, 2:35:04 PM, you wrote:

>> also, while i like dynamic records for some types of tasks, i think
>> that the "spirit" of Haskell in whole is to give explicit definitions
>> of all types used and in this respect this type extension in not on
>> "main way". 

CR> record extension is the basis for record concatenation, which is
CR> the basis for composing programs that use records. for instance,
CR> if you have two attribute grammars that compute two sets of
CR> attributes and you want to compose them into a single grammar,
CR> you run into troubles. (dual arguments for extensible variants,
CR> be it for exception types, or for extensible grammars that cover
CR> haskell+extensions without having to specify and maintain two 
CR> separate grammars). and the concept of partial type specifications
CR> is not uncommon in Haskell (polymorphism, type classes).

(sorry for late answer)

this again should be maintained in "Haskell way", i.e. with static
type declarations:

data Pizza = ...
data Cola = ...

type PizzaWithCola = Pizza+Cola

weight :: PizzaWithCola -> Double
weight pc = pizzaWeight pc + colaWeight pc

pizzaWeight :: Pizza -> Double
colaWeight  :: Cola  -> Double

it is one more remainder of what we need OOP-like features such as
data fields inheritance. O'Haskell has something in this area,
although afair it doesn't support the multiple inheritance


-- 
Best regards,
 Bulat                            mailto:[EMAIL PROTECTED]

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to