(C) 2004-2005, Oleg Kiselyov, Ralf Laemmel, Keean Schupke OOHaskell -- Haskell's overlooked object system The code relies on the HList library. Since 10 September 2005, HList is contained in the OOHaskell distribution. The code has been released for GHC 6.4. See the Makefile for ways of running test cases. Here is a brief overview on the sample files: - SimpleIO.hs -- Simple objects in classes; in the IO monad - SimpleST.hs -- Incomplete variation using the ST monad - CircBuffer.hs -- A typical polymorphic collection type - Selfish.hs -- Open recursion and inheritance examples - Shapes*.hs -- Several encodings of the shapes example - SelfReturn.hs -- Returning self; almost - CovariantArgs.hs -- Co-variant argument types as in Eiffel - EiffelFaqLcon.hs -- Co-variance example from Eiffel FAQ - CovariantReturn.hs -- Co-variant return types as in Java 5 - RecList.hs -- Iso-recursive types; recursive classes - Nominal*.hs -- Nominal types; nominal subtype polymorphism - DynamicOo.hs -- Dynamics for OOHaskell objects - DeepNarrow.hs -- A narrow operation for deep subtyping - DeepSubtyping.hs -- Examples for width vs. depth subtyping - New.hs -- Operations for safe value recursion - SelfishSafe.hs -- Many examples with safe value recursion Non-OOHaskell examples: - Weirich -- The C++ implementation from the Shapes Code Suite. - Rathman -- The Haskell implementation from the Shape Code Suite. - Shapes1 .. 6 -- non-OOHaskell-based implementations of shapes example. - interpreter -- An example that simulates extensible datatypes Last updated; September 10, 2005