import std.stdio;

void main()
{
    bool
        a = is(int[]),   // True, int[] – до­пус­ти­мый тип
        b = is(int[5]),  // True, int[5] – так­же до­пус­ти­мый тип
        c = is(int[-3]), // False, раз­мер мас­си­ва за­дан не­вер­но
        d = is(Blah);    // False (ес­ли тип с име­нем Blah не был оп­ре­де­лен)

    writeln("a = ", a, "; b = ", b, "; c = ", c, "; d = ", d, ';');

    alias uint UInt;
    assert(is(uint == UInt));

    a = is(int[5] : int[]),  // true, int[5] мо­жет быть пре­об­ра­зо­ван к int[]
    b = is(int[5] == int[]), // false; это раз­ные ти­пы
    c = is(uint : long),     // true
    d = is(ulong : long);    // true

    writeln("a = ", a, "; b = ", b, "; c = ", c, "; d = ", d, ';');
}
