# User Defined N-ary Types, like Array{T,N}?

**URL:** <https://discourse.julialang.org/t/user-defined-n-ary-types-like-array-t-n/7239>\
**Category:** General Usage\
**Tags:** type, parametric-types\
**Created:** [November 22, 2017, 3:00am UTC](https://discourse.julialang.org/t/user-defined-n-ary-types-like-array-t-n/7239 "2017-11-22T03:00:45Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 22, 2017, 9:22am UTC](https://discourse.julialang.org/t/user-defined-n-ary-types-like-array-t-n/7239/5 "2017-11-22T09:22:46Z")

</div>

I asked a similar question here, you may find the answers useful:

> [@What are valid type parameters?](https://discourse.julialang.org/t/what-are-valid-type-parameters/471):
>
> I am trying to stuff quite a bit of information into parameters of a type, in the hope that dispatching on this will create efficient code. Doing this, I ran into the question of what is allowed, exactly. Is the following correct: a value V is valid for a type parameter iff either isbits(V) isa(V, Symbol) isa(V, Type) Is there anything else? To make things concrete, what I am trying to encode as type parameters are a return type, and a Vector{Pair{Int,Type}}. The latter does not work, but …

---

_[View the full topic](https://discourse.julialang.org/t/user-defined-n-ary-types-like-array-t-n/7239)._
