@hackage dynamic-object0.2

Object-oriented programming with duck typing and singleton classes.

This package aims to combine the merit of Haskell's open, strong type system with flexible Object-oriented programming found in dynamically-typed languages such as python or ruby.

Objects are implemented as Maps from method keys to values. Each key specifies its own value types. You can add new members at runtime, for any instances of the object (singleton class). At the same time, you have typed and runtime-error-free access to the members (duck typing).

See Data.Object.Dynamic.Examples.PointParticle for examples.