public abstract IBar this[IBar a, IBar o, IBigMess r] { get; set; }
public abstract IBar DeepOutRef(IBar a, out IBar o, ref IBigMess r);