---
title: Dependence
slug: dependence
createdAt: 2021-06-28T17:12:31.000Z
---



```javascript
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");
```

