diff --git a/content/generics-next-step.article b/content/generics-next-step.article
new file mode 100644
index 0000000..5523f0a
--- /dev/null
+++ b/content/generics-next-step.article
@@ -0,0 +1,139 @@
+# The Next Step for Generics
+16 Jun 2020
+Tags: go2, proposals, generics
+Summary: An updated generics design draft, and a translation tool for experimentation
+
+Ian Lance Taylor
+Robert Griesemer
+
+It’s been almost a year since we [last wrote about the possibility of
+adding generics to Go](https://blog.golang.org/why-generics).
+It’s time for an update.
+
+## Updated design
+
+We’ve been continuing to refine the [generics design
+draft](https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-contracts.md).
+We’ve written a type checker for it: a program that can parse Go code
+that uses generics as described in the design draft and report any
+type errors.
+We’ve written example code.
+And we’ve collected feedback from many, many people&mdash;thanks for
+providing it!
+
+Based on what we’ve learned, we’re releasing an [updated design
+draft](https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md).
+The biggest change is that we are dropping the idea of contracts.
+The difference between contracts and interface types was confusing, so
+we’re eliminating that difference.
+Type parameters are now constrained by interface types.
+Interface types are now permitted to include type lists, though only
+when used as constraints; in the previous design draft type lists were
+a feature of contracts.
+More complex cases will use a parameterized interface type.
+
+We hope that people will find this design draft simpler and easier to
+understand.
+
+## Experimentation tool
+
+To help decide how to further refine the design draft, we are
+releasing a translation tool.
+This is a tool that permits people to type check and run code written
+using the version of generics described in the design draft.
+It works by translating generic code into ordinary Go code.
+This translation process imposes some limitations, but we hope that it
+will be good enough for people to get a feel for what generic Go code
+might look like.
+The real implementation of generics, if they are accepted into the
+language, will work differently.
+(We have only just begun to sketch out what a direct compiler
+implementation would look like.)
+
+The tool is available on a variant of the Go playground at
+[https://go2goplay.golang.org](https://go2goplay.golang.org).
+This playground works just like the usual Go playground, but it
+supports generic code.
+
+You can also build and use the tool yourself.
+It is available in a branch of the master Go repo.
+Follow the [instructions on installing Go from
+source](https://golang.org/doc/install/source).
+Where those instructions direct you to check out the latest release
+tag, instead run `git checkout dev.go2go`.
+Then build the Go toolchain as directed.
+
+The translation tool is documented in
+[README.go2go](https://go.googlesource.com/go/+/refs/heads/dev.go2go/README.go2go.md).
+
+## Next steps
+
+We hope that the tool will give the Go community a chance to
+experiment with generics.
+There are two main things that we hope to learn.
+
+First, does generic code make sense?
+Does it feel like Go?
+What surprises do people encounter?
+Are the error messages useful?
+
+Second, we know that many people have said that Go needs generics, but
+we don’t necessarily know exactly what that means.
+Does this draft design address the problem in a useful way?
+If there is a problem that makes you think “I could solve this if Go
+had generics,” can you solve the problem when using this tool?
+
+We will use the feedback we gather from the Go community to decide how
+to move forward.
+If the draft design is well received and doesn’t need significant
+changes, the next step would be a [formal language change
+proposal](https://golang.org/s/proposal).
+To set expectations, if everybody is completely happy with the design
+draft and it does not require any further adjustments, the earliest
+that generics could be added to Go would be the Go 1.17 release,
+scheduled for August 2021.
+In reality, of course, there may be unforeseen problems, so this is an
+optimistic timeline; we can’t make any definite prediction.
+
+## Feedback
+
+The best way to provide feedback for the language changes will be on
+the mailing list `golang-nuts@googlegroups.com`.
+Mailing lists are imperfect, but they seem like our best option for
+initial discussion.
+When writing about the design draft, please put `[generics]` at the
+start of the Subject line and to start different threads for different
+specific topics.
+
+If you find bugs in the generics type checker or the translation tool,
+they should be filed in the standard Go issue tracker at
+https://golang.org/issue.
+Please start the issue title with `cmd/go2go:`.
+Note that the issue tracker is not the best place to discuss changes
+to the language, because it does not provide threading and it is not
+well suited to lengthy conversations.
+
+We look forward to your feedback.
+
+## Acknowledgements
+
+We’re not finished, but we’ve come a long way.
+We would not be here without a lot of help.
+
+We’d like to thank Philip Wadler and his collaborators for thinking
+formally about generics in Go and helping us clarify the theoretical
+aspects of the design.
+Their paper [Featherweight Go](https://arxiv.org/abs/2005.11710)
+analyzes generics in a restricted version of Go, and they have
+developed a prototype [on GitHub](https://github.com/rhu1/fgg).
+
+We would also like to thank [the
+people](https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md#acknowledgements)
+who provided detailed feedback on an earlier version of the design
+draft.
+
+And last but definitely not least, we’d like to thank many people on
+the Go team, many contributors to the Go issue tracker, and everybody
+else who shared ideas and feedback on earlier design drafts.
+We read all of it, and we’re grateful.  We wouldn’t be here without
+you.
