>>555
delegateは実はただの構造体のようなもの。

TR delegate(TA) toDelegate(TR, TA...)(TR function(TA) fn) {
typeof(return) dg;
dg.ptr = null;
dg.funcptr = fn;
return dg;
}