Implement lazy evaluation.

Library(fh) doesn't like it when fh is a path, only likes it when
fh is already a file object.