It's good to see other people want multiple inheritance too :). One thing I haven't seen discussion yet is using Scala's method of constructors to make deal with the fields and MI.
It seems like abstract types could be equivalent to Scala traits (if abstract types allowed fields), and regular types to classes. Abstract types wouldn't be allowed constructors (like traits), and thus the regular types would have complete control as how to initialize the variables. Thus, in Julia the main difference between the two would be whether a constructor exists (in keeping with their name). I generally agree with not wanting deep hierarchies. However, as it stands, it seems like even shallow hierarchies are difficult. I also think it's languages like Java that tend to create the large hierarchies because it doesn't have multiple inheritance of mixins. Generally in c++ things tend to be fairly shallow.
