比較

import std.c.stdio;

template Hige(){
    void hige(){
        hoge();
    }
}

class Hoge{
    void hoge(){
        printf("hoge\n");
    }
    mixin Hige;
}

void main(){
    Hoge h = new Hoge();
    h.hige();
}

これは通る。

hoge

そしてこっちは駄目。

template Foo(){
    int[] map(int delegate(int) dg){
        int[] tary;
        each( (int i){ tary ~= dg(i); } );  // コメントアウトするとエラー消える
        return tary;
    }
}

class Hoge{
    void each(void delegate(int) dg){
        for (int i = 0; i < 5; i++){
            dg(i);
        }
    }
    mixin Foo;
}

void main(){
    Hoge h = new Hoge();
    int[] ary = h.map( (int i){ return i * i; } );
}
Assertion failure: 'next' on line 2226 in file 'mtype.c'
abnormal program termination

mtype.cはTypeの定義とか。2226行目はTypeFunctionのsyntaxCopyという関数で、nextというのはType(TypeFunctionのスーパークラス)のメンバ変数。Type型のポインタ。
正直コードでかすぎてよくわからない。うーん。