Hi Burak,

So, how about to change the idea to accept contracts as restrictions to
generic types?
For example:
This is defined on
https://go.googlesource.com/proposal/+/master/design/go2draft-contracts.md

contract stringer(x T) {
        var s string = x.String()}


Could be expressed this way:

type stringer generic{
   contract String() string
}



Alternatively it could have multiple definitions:
This is defined on
https://go.googlesource.com/proposal/+/master/design/go2draft-contracts.md

contract adjustable(x T) {
        var _ T = x.Adjust()
        x.Apply()}


Could be expressed this way:

type adjustable generic{
        contract (           Adjust() adjustable
           Apply()        )}



So, changing this way could solve this issue?

Best regard,
Luis Otávio



On Fri, Jun 7, 2019 at 12:17 PM Burak Serdar <bser...@ieee.org> wrote:

> On Fri, Jun 7, 2019 at 7:32 AM Luis Furquim <luisfurq...@gmail.com> wrote:
> >
> >
> >
> > Hello gophers,
> >
> > I have almost no experience on language definitions/proposals and on
> generics.
> > But an idea came to my mind and I wanted to share it.
> > It is an idea, not a proposal, I haven't worked on
> detailing/elaboration, etc.
> > As stated on my gist, I got the text and examples from Faiface gist and
> adapted to my idea.
> > No plagiarism intent, just to quickly have something readable by people.
> > But, if people finds the copy/edit method I used is offensive, just
> point this and I may delete the gist.
>
>
> One problem with this type of generic types is the lack of type
> checking at the time of generic compilation. You can only type check
> the generic functions when they are instantiated and that can cause
> hard to decipher error messages. The contracts idea was promoted to
> eliminate those.
>
> >
> > So, here is the gist:
> > https://gist.github.com/luisfurquim/548c37870f7ed5a57a1f91a696cfc62f
> >
> > Best regards,
> > Luis Otavio
> >
> >
> > Em quinta-feira, 30 de maio de 2019 13:29:03 UTC-3, Michal Strba
> escreveu:
> >>
> >> Hi Gophers! :)
> >>
> >> I've been thinking about generics in Go 2 ever since the original
> contracts proposal and few days ago, ideas finally clicked. One of the main
> things about this proposal is that it deliberately omits the ability to
> restrict the set of types a function can work with. This is a limitation,
> but I hope to convince you that we can still do a vast majority of the
> things we were missing, when we were missing generics.
> >>
> >> I'd love to share my proposal with you and engage in a good faith
> conversation.
> >>
> >> Link to the proposal.
> >>
> >> Here's what the proposal covers:
> >>
> >> 1. Syntax of a new gen keyword.
> >> 2. Generic functions.
> >> 3. Unnamed generic arguments (a.k.a. a way to gve a type to the
> built-in new function).
> >> 4. Semantics of generic values (ability to use them as map keys, ...).
> >> 5. Generic array lengths.
> >> 6. Reflection and interface{}.
> >> 7. Generic types (with two examples: List and Matrix).
> >> 8. Generic methods and their limitations due to reflection.
> >> 9. Generic interfaces.
> >> 10. List of things this proposal can't do.
> >>
> >> Thanks,
> >> faiface
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups "golang-nuts" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an email to golang-nuts+unsubscr...@googlegroups.com.
> > To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/d284f74d-1e2c-474e-bc0d-a30413d17d98%40googlegroups.com
> .
> > For more options, visit https://groups.google.com/d/optout.
>


-- 
Luis Otavio de Colla Furquim

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CACyQ4W6LasZnem6qJqmJfpRFX%2BP_CesMyUfXqTr7%2BMOrshnqzQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to