I am trying to define two parametric types with circular dependency as 
follows.

abstract abstest

type t1{A <: abstest, B} 
  x::A 
  y::B
end

type t2{C, B} <: abstest 
  x::C 
  y::t1{t2{C, B}, B}
end

Unfortunately it doesn't work:
ERROR: TypeError: t1: in A, expected A<:abstest, got Type{t2{C,B}}

Apparently he is complaining about the definition of field y in the 
definition of type t2. But t2{C, B} is a subtype of abstest, so {t2{C, B}, 
B} should be valid parameters for type t1. Probably I am missing something 
here.

Thanks,
Tommy


Reply via email to