AR 5/3/2011 Example on using GADT and composOp in transfer. To compile: make To test: echo "this expensive boring wine is warm" | ./VeryFoods this expensive very boring wine is warm echo "deze dure wijn is saai" | ./VeryFoods deze dure wijn is erg saai Functionality: wraps every occurrence of "boring" with "very". This is implemented with a function that needs only two cases: one for "Boring" and another for the rest of trees. On the method, see B. Bringert and A. Ranta. A Pattern for Almost Compositional Functions. Journal of Functional Programming, 18(5-6), pp. 567-598, 2008. http://www.cse.chalmers.se/alumni/bringert/publ/composOp-jfp/composOp-jfp.pdf Source code: VeryFoods.hs -- main Haskell module, hand-written Makefile Foods.gf, FoodsEng.gf, FoodsDut.gf -- from GF/contrib/summerschool/foods/ Foods.hs and Foods.pgf are generated by 'make'.