namespace Caliburn.Micro.Core {
    /// 
    ///   A marker interface for classes that subscribe to messages.
    /// 
    public interface IHandle {
    }
    /// 
    ///   Denotes a class which can handle a particular type of message.
    /// 
    /// The type of message to handle.
    public interface IHandle : IHandle { //don't use contravariance here
        /// 
        ///   Handles the message.
        /// 
        /// The message.
        void Handle(TMessage message);
    }
}