A basic test is generally "when compiles()". But I think your case can not really work: The user of your lib would import your lib, and on the other hand your lib would import drive() proc from user module. So you have cyclic imports.
Maybe your lib can define and export a proc var of type drive(), which is nil by default and user can assign his own proc to it?
