January 08, 2021
Here a condensed version of the problem I encountered after updating to
msgpack-d 1.0.3 and not merging a local patch of this [1] line:

```sub.d
module sub;
import l2;
void foo ()
{
   import std.stdio: writeln;
   bar();
   auto fn = &isDir!string;
   writeln (`isDir fn ptr = `, fn);
}

unittest {
   foo;
}
```

```l2/package.d
module l2;

void bar ()
{
   import std.stdio: writeln;
   writeln ("this is ", __PRETTY_FUNCTION__);
}

version (unittest) {
   package import std.file;
}

unittest {
}
```

$ dmd -i -unittest -main -run sub
this is void l2.bar()
isDir fn ptr = 123456
2 unittests passed

$  dmd -i -c sub
sub.d(7): Error: template instance isDir!string template isDir is not defined

One interesting part about "package import" is

   "By the way, `package import` seems to work just like `public import`,
    not restricting anything. Looks like a compiler bug." [2]

From now on I will use only selective imports.

[1] https://github.com/msgpack/msgpack-d/blob/master/src/msgpack/packer.d#L894
IFAICS the unittest works perfectly with a plain vanilla import. BTW:
---------------------------- src/msgpack/packer.d -----------------------------
index d92a74e..77bcf07 100644
@@ -1129,8 +1129,7 @@ unittest
         }
     }

-    version (X86_64) // can't create a long enough array to trigger this on x86
-    { // larger spec size for string / binary
+    static if ((byte*).sizeof > 4) {
         mixin DefinePacker;

         try {

[2] http://forum.dlang.org/thread/lwdasivphymhblwxasgc@forum.dlang.org#post-qaer55:2431h0:241:40digitalmars.com