On Tue, Nov 20, 2018 at 4:38 AM komuW <komu...@gmail.com> wrote: >> >> A contract can also be written in terms of a struct: >> >> contract linkedListNode { >> X struct { >> next *X >> } >> } > > > In this example taken from the linked document; what is X?
X is the name of the struct type. This struct satisfies that contract: type node struct { next *node } This does not: type node struct { next *int } > > > On Tuesday, 20 November 2018 05:38:31 UTC+3, Burak Serdar wrote: >> >> Hi, >> >> A while ago I sent an email to this list proposing an alternative way >> to specify contracts using existing types, with a "like" keyword to >> represent contracts on primitives. The idea stirred up some >> discussion, I got some useful feedback, and eventually, it died down. >> The idea stuck with me though, because it wasn't complete when I >> proposed it, it had inconsistencies and unresolved problems. It turned >> into this puzzle that I kept working on on the side, I started writing >> a contracts/generics simulator, which I never finished, but it allowed >> me to figure out a way to solve the problems the original idea had. So >> the latest version of that proposal is now here: >> >> https://gist.github.com/bserdar/8f583d6e8df2bbec145912b66a8874b3 > > -- > 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. > For more options, visit https://groups.google.com/d/optout. -- 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. For more options, visit https://groups.google.com/d/optout.