Thanks Luke.

In fact I, will have different implementations of the Transformation type. Something like:

data SelectScenarios = SelectScenarios {

scIds :: [Id]

}

 

And then I should be able to make SelectScenarios a kind of Transformation. So I think that I really need a class. What do you think about it?

instance Transformation SelectScenario where

(<+>)  ....

 

Regards,

Rodrigo.

 

 

 

 

 

Em 01/12/2009 19:39, Luke Palmer < lrpalmer@gmail.com > escreveu:


On Tue, Dec 1, 2009 at 11:21 AM, David Menendez wrote:
> On Tue, Dec 1, 2009 at 1:00 PM, rodrigo.bonifacio
> wrote:
>> Dear all, I wrote the following  types:
>>
>>> class Transformation t where
>>>  (<+>) :: t -> SPLModel  -> InstanceModel -> InstanceModel
>>
>>> data Configuration = forall t . Transformation t => Configuration
>>> (FeatureExpression, [t])
>>> type ConfigurationKnowledge = [Configuration]

I would suggest doing away with the class in a case like this.

data Transformation = Transformation {
(<+>) :: SPLModel -> InstanceModel -> InstanceModel
}

data Configuration = Configuration FeatureExpression [Transformation]

I suspect that it was OO heritage that l ed you to want a class here?
Forget that! :-)

Luke