All I mean is that if you write functions that call `firstparam` or `secondparam`, julia will be able to infer the return type. That means that in
function foo(mt::MyType) T = firstparam(typeof(mt)) a = Array(T,20) # now do something with a end julia will generate efficient code in manipulating a. With the version that uses the parameters field directly, it won't. In addition to the two methods I showed in the last email, you should also define firstparam(mt::MyType) = firstparam(typeof(mt)) secondparam(mt::MyType) = secondparam(typeof(mt)) and that will make the code above a little nicer. Best, --Tim On Saturday, September 12, 2015 03:27:20 AM Jeffrey Sarnoff wrote: > pls show me a quick example of using that inferrably > > On Saturday, September 12, 2015 at 6:12:21 AM UTC-4, Tim Holy wrote: > > A much better way (because it's inferrable): > > > > firstparam{A,B}(::Type{MyType{A,B}}) = A > > secondparam{A,B}(::Type{MyType{A,B}}) = B > > > > --Tim > > > > On Friday, September 11, 2015 06:40:59 PM Jeffrey Sarnoff wrote: > > > julia> type MyType{A,B} end > > > > > > julia> ((MyType.parameters)...) > > > (A,B) > > > > > > On Friday, September 11, 2015 at 3:20:17 PM UTC-4, Erik Schnetter wrote: > > > > Is there a function in Julia that allows accessing the parameters of a > > > > type? > > > > > > > > For example, if I have > > > > > > > > type T{A,B} end > > > > > > > > then I'd like a way to convert `T{Int, Char}` to `(Int, Char)`. > > > > > > > > In other words, is there a way to get at the contents of `DataType` > > > > objects? > > > > > > > > Thanks, > > > > -erik