Hi Todd, the problem is, that 'model_of' tries to return different types: Model a, Model (a,a) and Model [a]. I think you have to use some kind of ADT also for the Model, like you already did for ModName. Something like: data Model a = Model a | ProductModel (a,a) | PowerModel [a] ... Greetings, Daniel