diff --git a/proto/doc.go b/proto/doc.go
index f001b93..e1d13d7 100644
--- a/proto/doc.go
+++ b/proto/doc.go
@@ -22,30 +22,29 @@
 // This package contains functions to convert to and from the wire format,
 // an efficient binary serialization of protocol buffers.
 //
+// • Size reports the size of a message in the wire format.
+//
 // • Marshal converts a message to the wire format.
 // The MarshalOptions type provides more control over wire marshaling.
 //
 // • Unmarshal converts a message from the wire format.
 // The UnmarshalOptions type provides more control over wire unmarshaling.
 //
-// • Size reports the size of a message in the wire format.
-//
 //
 // Basic message operations
 //
 // • Clone makes a deep copy of a message.
 //
+// • Merge merges the content of a message into another.
+//
 // • Equal compares two messages. For more control over comparisons
 // and detailed reporting of differences, see package
 // "google.golang.org/protobuf/testing/protocmp".
 //
+// • Reset clears the content of a message.
+//
 // • IsInitialized reports whether all required fields in a message are set.
 //
-// • Merge combines two messages. The MergeOptions type provides more
-// control over merge operations.
-//
-// • Reset clears the contents of a message.
-//
 //
 // Optional scalar constructors
 //
@@ -53,22 +52,22 @@
 // as pointers to a value. For example, an optional string field has the
 // Go type *string.
 //
-// • Bool, Float32, Float64, Int32, Int64, String, Uint32, and Uint64
-// take a value and return a pointer to a new instance of it, to
-// simplify construction of optional field values.
+// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String
+// take a value and return a pointer to a new instance of it,
+// to simplify construction of optional field values.
 //
 // Generated enum types usually have an Enum method which performs the
 // same operation.
 //
-// Optional values are only supported in proto2.
+// Optional scalar fields are only supported in proto2.
 //
 //
 // Extension accessors
 //
-// • GetExtension, SetExtension, ClearExtension, and HasExtension access
-// extension field values in generated messages.
+// • HasExtension, GetExtension, SetExtension, and ClearExtension
+// access extension field values in a protocol buffer message.
 //
-// Extensions are only supported in proto2.
+// Extension fields are only supported in proto2.
 //
 //
 // Related packages
diff --git a/proto/encode.go b/proto/encode.go
index 65e951e..3625091 100644
--- a/proto/encode.go
+++ b/proto/encode.go
@@ -62,8 +62,8 @@
 	// 2. The message and all its submessages have not changed in any
 	// way since the Size call.
 	//
-	// If either of these invariants is broken, the results are undefined
-	// but may include panics or invalid output.
+	// If either of these invariants is violated,
+	// the results are undefined and may include panics or corrupted output.
 	//
 	// Implementations MAY take this option into account to provide
 	// better performance, but there is no guarantee that they will do so.
diff --git a/proto/extension.go b/proto/extension.go
index 809c12d..b89413b 100644
--- a/proto/extension.go
+++ b/proto/extension.go
@@ -9,25 +9,28 @@
 )
 
 // HasExtension reports whether an extension field is populated.
+// It panics if ext does not extend m.
 func HasExtension(m Message, ext protoreflect.ExtensionType) bool {
 	return m.ProtoReflect().Has(ext.TypeDescriptor())
 }
 
 // ClearExtension clears an extension field such that subsequent
 // HasExtension calls return false.
+// It panics if ext does not extend m.
 func ClearExtension(m Message, ext protoreflect.ExtensionType) {
 	m.ProtoReflect().Clear(ext.TypeDescriptor())
 }
 
 // GetExtension retrieves the value for an extension field.
-//
 // If the field is unpopulated, it returns the default value for
 // scalars and an immutable, empty value for lists, maps, or messages.
+// It panics if ext does not extend m.
 func GetExtension(m Message, ext protoreflect.ExtensionType) interface{} {
 	return ext.InterfaceOf(m.ProtoReflect().Get(ext.TypeDescriptor()))
 }
 
 // SetExtension stores the value of an extension field.
+// It panics if ext does not extend m or if value type is invalid for the field.
 func SetExtension(m Message, ext protoreflect.ExtensionType, value interface{}) {
 	m.ProtoReflect().Set(ext.TypeDescriptor(), ext.ValueOf(value))
 }
diff --git a/proto/merge.go b/proto/merge.go
index b60fd01..aecc8e4 100644
--- a/proto/merge.go
+++ b/proto/merge.go
@@ -8,7 +8,7 @@
 	"google.golang.org/protobuf/reflect/protoreflect"
 )
 
-// Merge merges src into dst, which must be messages with the same descriptor.
+// Merge merges src into dst, which must be a message with the same descriptor.
 //
 // Populated scalar fields in src are copied to dst, while populated
 // singular messages in src are merged into dst by recursively calling Merge.
@@ -27,7 +27,7 @@
 	mergeOptions{}.mergeMessage(dstMsg, srcMsg)
 }
 
-// Clone returns a copy of m.
+// Clone returns a deep copy of m.
 // If the top-level message is invalid, it returns an invalid message as well.
 func Clone(m Message) Message {
 	// NOTE: Most usages of Clone assume the following properties:
