namespace Caliburn.Micro.Core {
    using System.Collections.Generic;
    /// 
    ///  Denotes a class which can handle a particular type of message and uses a Coroutine to do so.
    /// 
    public interface IHandleWithCoroutine : IHandle {  //don't use contravariance here
        /// 
        ///  Handle the message with a Coroutine.
        /// 
        /// The message.
        /// The coroutine to execute.
        IEnumerable Handle(TMessage message);
    }
}