Admit void as result type of a function type.
Handle interface inheritance.
Do not crash with an object type.
Accept 'declare' as an identifier.