Does this do it?
ptype{T}(::Type{Ptr{T}}) = T
btype{T}(b::Type{B{T}}) = T
btype(ptype(z))
(One way or another, that is one torturous type nest!)
--Tim
On Monday, February 10, 2014 11:26:33 PM Jameson Nash wrote:
> I can't figure this out, so I'm hoping someone will be able to help
> suggest a better way to parametrize this code, or solve my dilemma.
> I've made a somewhat complicate type hierarchy, and now I need to
> extract some information from it. The problem is, given z (or an
> instance thereof), I can't seem to extract S:
>
>
> julia> abstract A{S}
>
> julia> type B{T} <: A{S} end
>
> julia> typealias C{T<:A} Ptr{T}
> Ptr{T<:A{T}}
>
> julia> z = Ptr{B{Int}}
> Ptr{B{Int64}}
>
> julia> # how to go from z -> Int here