Ceylon Migration Bot

Results 83 comments of Ceylon Migration Bot

[@gavinking] Interestingly, the following point of view perhaps makes more sense: ```ceylon interface Monoid { shared formal Value zero; shared formal Value add(Value x, Value y); } interface Summable of...

[@gavinking] > Another problem is that you may want to change the monoid being used from the default one I know but I would prefer to not bite that one...

[@RossTate] Yep, makes sense. The one thing I don't like about this syntax is having two separate declarations for `Float`. Maybe midde-ground that with mine: ```ceylon class Float() satisfies Numeric...

[@gavinking] This did help me a little. By analogy with: ```ceylon interface Foo of foo satisfies Singleton { ... } ``` Where we have the pattern: ```ceylon interface of satisfies...

[@gavinking] > Yep, makes sense. The one thing I don't like about this syntax is having two separate declarations for `Float`. I _would_ have the same concern, if it weren't...

[@pthariensflame] If Ceylon gets extension methods, then "introductions" will never actually be needed.

[@gavinking] OK, after a couple of iterations I arrived at this: ``` ceylon // a type class: interface Monoid { shared formal Value zero; shared formal Value add(Value x, Value...

[@RossTate] @pthariensflame: Extension methods and introductions or type classes are very different from each other. @gavinking: Ok, I see you're reasoning about the separation. Then the one thing I don't...

[@gavinking] > If Ceylon gets extension methods, then "introductions" will never actually be needed. I don't think that's right. Extension methods don't let you introduce a new type, they just...

[@pthariensflame] @RossTate I must be misunderstanding what "introductions" are, then. Haskell's type classes (exempting extensions) are exactly covered by this proposal. I thought an introduction was an injection of a...