Are there any plans to support higher order ranked types in julia?

I think that your perspective comes from the ML family of programming languages. Informally, the agenda behind these can be summarized as “look, we can do (strong) static typing, without having having to write tons of type declarations (90% of the time)”. The constructs you are talking about make sense in that context.

Whereas in Julia, computations on the type system are not that interesting per se for the programmer 90% of the time, and are usually left to the compiler. The purpose of parametric types in Julia is to achieve efficient code generation for concrete types. That’s kind of the whole exercise: think of Julia as an extremely powerful DSL developed for this purpose. You may find this post and the replies useful:

When I started using Julia, I wanted the type system to be able to express various things. For example, I was awaiting triangular dispatch very eagerly, as a “must have” feature. Now that we have it, I find that I am not using it as much as anticipated (this does not mean it is not essential when needed).

If you are expecting Julia to do things which are on the frontiers for type theory, you will probably be disappointed. OTOH, if you want to invest in learning a language where the focus is on writing fast generic code, this is probably the right place.

4 Likes