Jean-Marc Valin wrote: > > Defining a new type always requires come code. In Overflow the > implemented types are: Int, Float, Double, String, Bool, Vector<T>, > Stream, ... > > If we start adding types for flags, filenames, ... then it becomes > endless. We'd need to divide "Vector" in "3D vector", "2D vector", > "AudioFrame", "FIRFilter", "IIRFilter", .... and the same for all types. > As for any language, the semantics can be taken into account with the > variable name (or in this case, the input name). I agree with you that we need to have a very small number of *STANDARD* node types. For example, in most programming languages you will have types INTEGER, REAL, CHAR, STRING, etc., just a few. *BUT* (and that's a big but) you can create new types using "old" types. Take Pascal for example. You can define... TYPE MYNUMBER : INTEGER; MYARRAY : ARRAR[0..100] OF TYPE MYNUMBER; (or whatever -- I can't remember my Pascal at the moment ;-)) But, I have created my own type! :-) I'm not saying that Overflow/Piper should have types "flag" and "filename" as standard types, but that they can be created using existing types and then packaged (compiled) into a subnet. The subnet can then be called "flag" or "filename". Make sense? :-) This is the same concept as defining new methods, procedures, functions, objects, whatever. I should be doable in Piper. Cheers. Jeff