The thing about PHP and the mixin’s I’ve developed is that they are not necessarily a class, instead the idea is that they are a trait that offers a particular feature to another class. So you define a feature, something the class can do, such as logging, or being able to hold configurations (see below) and then you can add it to a particular class.
Predicate objects are an interesting concept, which could have many uses in functional programming, in mathematical polymorphism, in input validation, etc. Ranges are a specific version of a predicate object that tests if any given value is within the maximum and minimum range defined in the object.
For example, say you want some of your classes to be able to be configured and store configurations. You could have a base class that includes that feature and then, in a single inheritance system like PHP, have all classes inherit from that class so that they can contain default behaviors. The problem with this is that you end up implementing all the class ‘features’ on the base class creating bloat and unneeded complexity in the inheriting classes, particularly if only a subset of the classes inheriting need the feature.
Many individuals see the Singleton Pattern as an anti-pattern. That is, a tool used to make code less optimal. The biggest drawback I can see is in testing in particular. Singletons are not entirely without merit however. There are domains in which a singleton provides a convenient and modular answer. As OODesign.com points out, there may only be need for one window manager, one file system (like the OS X Finder), one print spool, one logging mechanism, one configuration resource, one database access point, etc.
Primus is a collection of libraries/components that are expected to work together to form a general artificial intelligence server/runtime environment. Deployment and application propositions include mobile robotics, information processing, pattern recognition, and social interaction simulations.