std.signal's Signal template relies on having std.stdio, std.c.stdlib, and std.outofmemory available where it is instantiated, since it has to be mixed in, and is therefore evaluated in the scope where it is instantiated, not in the scope of the std.signals module. This means anyone wishing to use std.signals must import those modules, which is undocumented.
Either this should be documented, or (better yet) the Signal template itself should import the required modules, like so:
template Signal(T1...) {
import std.outofmemory, std.stdio, std.c.stdlib;
... rest of template body ...
}
Comment #1 by matti.niemenmaa+dbugzilla — 2006-11-15T03:01:19Z