function typetree(io::IO,from::Type)
	println(io,from)
	typetree_low(io,from,1)
end
function typetree_low(io::IO,from::Type,n::Int)
	tys=subtypes(from)
	for ty in tys
		bl=(ty===Any||ty===Function)
		for i in 1:n print(io,"|\t") end
		print(io,ty)
		if ismutable(ty) print(io," m") end
		if isprimitivetype(ty) print(io," p") end
		if bl print(io," r") end
		println(io)
		if !bl
			typetree_low(io,ty,n+1)
		end
	end
end