using simeonschaub’s code

`(..)(x, y) = Base.broadcasted(getproperty, x, y)`

and sample data:

```
T = (
TA = ( T1 = 1, T2 = 5 ),
TB = ( T1 = 2, T2 = 10 )
)
X = (
XA = ( X1 = 'A', T=T.TA ),
XB = ( X1 = 'B', T=T.TB ),
XC = ( X1 = 'C', T=T.TB )
)
```

These both work, giving the vector 1 2 2

```
(([X...]..:T)..:T1) .+ 0
(DataFrame(X).T..:T1) .+ 0
```

Though it would be really nice if you could just write: X…:T1

i.e. putting T=T.TA, T=T.TB created a link or table join so that elements of T are available as elements of X. Is there any structure that can do this?

Also, its not hard to write [X…] or DataFrame(X)

But is there a data structure that can specify both

columns: eg DataFrame(X).T and

rows by index: eg X.XA