* Any that is dynamically typed, obviously.
 * [GO](http://golang.org/), because it's classes implement interface if they have the correct methods, without ever declaring them. So you just declare an interface that derives the two there and return it.
 * You can do the same in [Haskell](http://www.haskell.org) where interfaces (they are called classes there) can be defined for existing types, so again you declare interface deriving the two and return it.
 * Obviously any other language where type can be defined to implement interface outside of definition of that type.
 * It's not possible in any type where implementing an interface has to be defined in the type definition itself. You can however work around in most of them by defining wrapper that implements the two interfaces and delegates all methods to a wrapped object.