Old style alias declaration can have optional 'StorageClasses'.
alias extern(C) ref pure nothrow int function() FP;
pragma(msg, FP); // prints: extern (C) int function() pure nothrow ref
But new alias syntax (introduced in enhancement issue 3011) does not support it.
alias FP = extern(C) ref pure nothrow int function();
---
test.d(1): Error: basic type expected, not extern
test.d(1): Error: semicolon expected to close alias declaration
test.d(1): Error: no identifier for declarator extern (C) int function()
The latter syntax should also be accepted and have same semantics with the former.