So, the question is: what should I add to "Foo" struct to allow implicit conversions from "int" to "Foo"?
D does not support implicit struct construction.
Interestingly though, it *does* support it for functions taking classes:
class Foo { this(int i) {} } void foo(Foo f...) {} void main() { foo(10); } But there's nothing like it for structs.