This is something I thought a lot about recently. Basically, I want to have 
the exact functionality of a concrete type and be able to call all function 
that takes the type but I also want to be able to dispatch differently if I 
want. And I don't want to manually have to copy all the methods.

In summary, dispatch on typealias.

I see this has been discussed before:

https://groups.google.com/forum/#!msg/julia-dev/v8B1tI_NB5E/tk98D0iKopYJ

https://github.com/JuliaLang/julia/pull/3292

I realize this is basically subtyping from a concrete type which seems to 
be a big nono but there would be so much nice things you could do with this.

On Tuesday, March 17, 2015 at 11:02:17 AM UTC+1, Mauro wrote:
>
> >  My thinking being that this would help avoid ambiguity with my code, as 
> I 
> > sometimes work with other units of time (e.g. seconds) that are also 
> > floating point numbers. Of course, this introduced a number of problems 
> in 
> > my existing code, including 
>
> There is also the Units.jl package, which may be of use? 
>
> >    1. Arithmetic operators not defined for type JDate. My workaround for 
> >    this has thus far been to overload the operators to accept JDate 
> types. 
> >    2. My functions not having methods that accept time as a JDate type. 
> My 
> >    workaround for this has been to change the function to accept 
> time::FloatingPoint 
> >    instead of time::Float64, but this workaround does not work for 
> Arrays. 
>
> This is a only partially solved problem, as far as I know.  How do I 
> wrap a datatype without having to re-implement all its methods. 
> Sometimes this can be done through subtyping, but not always. 
>
> One approach is to use a macro to delegate methods to one of the fields 
> of the datatype: 
>
> https://github.com/JuliaLang/DataStructures.jl/search?utf8=%E2%9C%93&q=delegate
>  
> https://github.com/JuliaLang/julia/pull/3292 
>
> For relatively simple number types, as in your case here, it might be 
> better to manually hook into the "conversion and promotion" framework of 
> Julia: 
> http://docs.julialang.org/en/latest/manual/conversion-and-promotion/ 
>

Reply via email to