# ddoc9305

- `foo`

  #### Declaration

  `void `foo`(alias p = (a) => a)();`

  `foo`()

- `X`

  #### Declaration

  `template `X`(alias pred = (x) => x)
  template `X`(alias pred = (x) { int y; return y; } )
  template `X`(alias pred = (int x) => x)
  template `X`(alias pred = (int x) { int y; return y; } )`

- `X`

  #### Declaration

  `template `X`(alias pred = function (x) => x)
  template `X`(alias pred = function (x) { return x + 1; } )
  template `X`(alias pred = function (int x) => x)
  template `X`(alias pred = function (int x) { return x + 1; } )
  template `X`(alias pred = function int(x) => x)
  template `X`(alias pred = function int(x) { return x + 1; } )
  template `X`(alias pred = function int(int x) => x)
  template `X`(alias pred = function int(int x) { return x + 1; } )`

- `X`

  #### Declaration

  `template `X`(alias pred = delegate (x) => x)
  template `X`(alias pred = delegate (x) { return x + 1; } )
  template `X`(alias pred = delegate (int x) => x)
  template `X`(alias pred = delegate (int x) { return x + 1; } )
  template `X`(alias pred = delegate int(x) => x)
  template `X`(alias pred = delegate int(x) { return x + 1; } )
  template `X`(alias pred = delegate int(int x) => x)
  template `X`(alias pred = delegate int(int x) { return x + 1; } )`