On Monday, 27 August 2012 at 04:01:10 UTC, Walter Bright wrote:
What happens with the name mangling? What about overloading?
template type deduction? type specialization? type equivalence?
type covariance?
Name mangling: Without knowing enough about compiler making, I'm
not sure why it matters. I couldn't answer, sorry.
Overloading: I'm making a guess, but do you mean something like
this?
void fn( int function(int) fp ) { ... }
void fn( int function(int = 1) fp ) { ... }
It should fail to compile.
Type specialization: Templates?
Bar!( int function(int) ) would have to be different than Bar!(
int function(int = 1) ), I would think.
Template type deduction: I don't really understand the question
with this, actually.
Type equivalence, type covariance: Like the is expressions I
showed before? Or what do you mean? They should be implicitly
convertible between each other.
I'm just giving you the standpoint of a user of the language, not
necessarily a compiler writer (I have an extremely basic
understanding of compilers ... mostly, I just know lexing and
parsing at the moment), so I'm having difficulty understanding
what some of the problems with this is.