On Fri, Feb 21, 2014 at 5:47 PM, Ricky Clarkson <ricky.clark...@gmail.com>wrote:

> To me, List(1, "a") should be a type error as it is in Haskell ([1, "a"])
>

I sympathize with this view. I can't remember last time I needed a
heterogeneous list and if I came upon such a need, I would probably try to
capture some commonality of all the elements in a trait and parameterize my
list on that.

But the discussion is still worth having even if it's a bit theoretical
because there are still a lot of unsolved questions surrounding the
interaction of variance and parametric polymorphism and I'd really like to
go down that rabbit hole to find out if a solution is workable or if ad hoc
polymorphism is the only reasonable way out.

I think language-supported union and intersection types are an interesting
new avenue in that field and I'm really looking forward to seeing how far
Ceylon can take them.


> and to denote a HList you should (and do) need to use something other than
> List. Similarly, to create a List<Integer|String> you should need some
> other syntax.
>

I can't think of a better syntax for this, and Ceylon took it a bit further
with its use of {} and *. All interesting and thought-provoking stuff. How
else would you prefer to write it?


> Otherwise, especially with type inference, you can end up with surprising
> type errors elsewhere, and code that's hard to read the types of.
>

Any code we can chew on? I have to admit my knowledge of Ceylon is mostly
theoretical at this point (I read a lot of docs and a lot of code but I
have written very little) but if what I read from the mailing-list is any
indication, things seem to be going pretty smoothly overall.

-- 
Cédric

-- 
You received this message because you are subscribed to the Google Groups "Java 
Posse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to javaposse+unsubscr...@googlegroups.com.
To post to this group, send email to javaposse@googlegroups.com.
Visit this group at http://groups.google.com/group/javaposse.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to