Dependence
1 min
Type TypeArray = T:Array<S:int,Type>;
//var parameterArguments = [int, bool, string];
//Inferred as Array<3, Type> {int, bool, string }
//TypeArray ta = parameterArguments;//Since it's just an alias to this type
structure Tuple<TA:TypeArray>
{
this(Tuple<TA> values)
{
//In practice the tuple type is seeded
//If you think about it, you must pass in a tuple of values to a tuple to start it
//That passed in tuple's type signature much matter the new instance of the tuple
//In this way tuples, are elementary like Arrays.
//We can express their behavior and signature within the langauge
}
}
type ParameterSet = T:Tuple<TA:TypeArray>;
//Really complicated way of saying it's an instantied instance of a tuple
//With these specific values in this order
//For example
//var tuple = new Tuple<[int,bool,string]>(3, false, "honk");
//var tuple = new Tuple<ta>(3, false, "honk");