Original Post
Hi, In object oriented programming languages we can often do this: void myfunc(Paintable p) { p.paint(); } I.e we specify a *required* *interface* that the argument object must support. This immediately raises a question: are there *statically* *typed* languages which support requiring *multiple* interfaces for the argument object to support? E.g void myfuncCleanup(p : Paintable, Closeable) { p.paint(); p.close(); } Is there a name for this kind of construct? Do any statically typed languages support it? What are the most common ways of faking it it traditional "single-interface" languages? Thanks! -- Mikko