Jonathan, thanks for the detailed response. I think in D we should not use strings for storing "non text" data. For such things we must use byte[] or ubyte[]. And ranges will work as expected. Is it correct?