Builder helps you write fluent interfaces for your libraries using method chaining:
req := ReqBuilder.
Url("http://golang.org").
Header("User-Agent", "Builder").
Get()
Builder uses immutable persistent data structures (these, specifically) so that each step in your method chain can be reused:
build := WordBuilder.Letters("Build")
builder := build.Letters("er").String()
building := build.Letters("ing").String()
Builder makes it easy to build structs using the builder pattern (surprise!):
muppet := builder.GetStruct(
MuppetBuilder.
Name("Beaker").
Hair("orange"))
muppet.Name == "Beaker"