The intention of my ALC routines is to allow flexible IO for various utilities written in COBOL. In other words, it allows a way around one of the chief remaining limitations of COBOL, which wants to know all of the details for every file it handles. (We are in the process of converting as much of our ALC to COBOL as possible. Yes, it is mostly a pointless project, but I wasn't the one who made the decision.) So, my routines really only need to obtain the records and make them available to the CALLing program. What to do with them after that is for them to deal with. (And for writing, it takes the record and makes sure that it gets into the file, but again, what it really contains is not my problem.)
And yes, I read all of the formats, but only sequentially. If I needed to add some kind of support for direct access, I could, but that has not been a requirement thus far.