
Hello everybody, I would like to start a discussion on how to generate best-practice Haskell code from a model, e.g. from EMF. It seems to be very difficult and unconvenient to simulate OOP with Haskell (as described in the paper "Object-oriented style overloading for Haskell"). However, I think it might be possible to generate "something useful" out of a model to not start from scratch an implementation. For example, I could imagine to generate for every class a module, import and export lists and a type class (with some restrictions) at the very least. In the EMF book there is an example, PurchaseOrder, look at http://www.awprofessional.com/content/images/0131425420/samplechapter/budins... at page 11. How would you like generated code from this model to look like? The most obvious way would be something like this: data PurchaseOrder = PurchaseOrder {shipTo::String, billTo:: String, items::[Item]} data Item = Item {productName::String, quantity::Int, price::Float} This does not work well if function names are reused or inheritance comes into play, however, even this might be a useful starting point (better than nothing). The benefits of the model+generate approach are well known. Best practices in programming are propagated, for Haskell e.g. use different modules for different things, use the tedious import/export lists, Haddock your code... What are your ideas? Best regards, Steffen -- Dipl.-Inform. Steffen Mazanek Institut für Softwaretechnologie Fakultät Informatik Universität der Bundeswehr München 85577 Neubiberg Tel: +49 (0)89 6004-2505 Fax: +49 (0)89 6004-4447 E-Mail: steffen.mazanek@unibw.de