You can make your code cleaner by making the LIBRARY call a function attribute, like this:
FilterDataset(DATASET(namesRecord) ds, STRING search) := LIBRARY('Ppass.FilterDsLib',FilterLibIface1(ds, search));
The use of the library then becomes:
FilterDataset(myNames, 'Holliday');
The library name (specified as the first parameter to the LIBRARY function) does not have to be a constant value, but it must not change while the query is running. This means you can conditionally select between different versions of a library.
For example, it is likely that you will want separate libraries for handling FCRA and non-FCRA data, since combining the two could generate inefficient or un-processable code. The code for selecting between the two implementations would look like this:
LibToUse := IF(isFCRA,'special.lookupFRCA','special.lookupNoFCRA); MyResults := LIBRARY(LibToUse, InterfaceCommonToBoth(args));