Is it some kind of bad design to have something like this:public interface IFooStream{    long Length { get; }    long Position {get; set;}    //...}public interface IReadableFooStream<T> : IFooStream{    int Read(T[] buffer, int offset, int count);}public interface IByteStream : IReadableFooStream<byte>{}public interface IFloatStream : IReadableFooStream<float>{}How would you solve something like this? I definitely must have the IByteStream and the IFloatStream interface. 
Interface inherits from interface without specifying new member
c#;object oriented design