I think we're actually talking about different things. You're thinking about 
type Sentinel vs. immutable Sentinel, but I was talking about Sentinel{:a} vs. 
Sentinel{[1, 2, 3]}.

Sorry for not being more clear.

 -- John

On Dec 16, 2014, at 6:29 PM, Luca Antiga <[email protected]> wrote:

> Ok, I see. So I checked and in fact it doesn't have to be immutable, only bit 
> type.
> 
> I confirm that the following
> 
>     type Sentinel{S}
>     end
> 
>     foo(::Type{Sentinel{:Case1}}) = println("1")
>     foo(::Type{Sentinel{:Case2}}) = println("2")
> 
>     foo(Sentinel{:Case1}) 
>     foo(Sentinel{:Case2}) 
> 
> works as expected.
> 
> Thanks again
> 
> Luca
> 
> On Tuesday, December 16, 2014 6:57:58 PM UTC+1, John Myles White wrote:
> I should probably point out that the type parameters being immutable is not 
> quite right: the restriction is "any bits types", which you can assess using 
> the isbits() function on a type's name. You can find more information here: 
> https://github.com/JuliaLang/julia/issues/6081 
> 
>  -- John 
> 
> On Dec 16, 2014, at 12:55 PM, Luca Antiga <[email protected]> wrote: 
> 
> > Hi John, 
> > It didn't occur to me to try with immutable, it makes perfect sense now. 
> > Thanks a lot for the hint and the explanation 
> > 
> > Luca 
> 

Reply via email to