diff --git a/enum_type.go b/enum_type.go
index eecd0237..6f52817a 100644
--- a/enum_type.go
+++ b/enum_type.go
@@ -16,14 +16,14 @@ type enumType struct {
 	value  string
 	status Status
 
-	pgTypeName string            // PostgreSQL type name
+	typeName   string            // PostgreSQL type name
 	members    []string          // enum members
 	membersMap map[string]string // map to quickly lookup member and reuse string instead of allocating
 }
 
 // NewEnumType initializes a new EnumType. It retains a read-only reference to members. members must not be changed.
-func NewEnumType(pgTypeName string, members []string) EnumType {
-	et := &enumType{pgTypeName: pgTypeName, members: members}
+func NewEnumType(typeName string, members []string) EnumType {
+	et := &enumType{typeName: typeName, members: members}
 	et.membersMap = make(map[string]string, len(members))
 	for _, m := range members {
 		et.membersMap[m] = m
@@ -36,14 +36,14 @@ func (et *enumType) CloneTypeValue() Value {
 		value:  et.value,
 		status: et.status,
 
-		pgTypeName: et.pgTypeName,
+		typeName:   et.typeName,
 		members:    et.members,
 		membersMap: et.membersMap,
 	}
 }
 
-func (et *enumType) PgTypeName() string {
-	return et.pgTypeName
+func (et *enumType) TypeName() string {
+	return et.typeName
 }
 
 func (et *enumType) Members() []string {
@@ -87,7 +87,7 @@ func (dst *enumType) Set(src interface{}) error {
 		if originalSrc, ok := underlyingStringType(src); ok {
 			return dst.Set(originalSrc)
 		}
-		return errors.Errorf("cannot convert %v to enum %s", value, dst.pgTypeName)
+		return errors.Errorf("cannot convert %v to enum %s", value, dst.typeName)
 	}
 
 	return nil
diff --git a/pgtype.go b/pgtype.go
index d58be882..7c893360 100644
--- a/pgtype.go
+++ b/pgtype.go
@@ -128,10 +128,8 @@ type Value interface {
 	AssignTo(dst interface{}) error
 }
 
-// TypeValue represents values where instances represent a type. In the normal pgtype model a Go type maps to a
-// PostgreSQL type and an instance of a Go type maps to a PostgreSQL value of that type. Implementors of TypeValue
-// are different in that an instance represents a PostgreSQL type. This can be useful for representing types such
-// as enums, composites, and arrays.
+// TypeValue represents values where instances can represent different PostgreSQL types. This can be useful for
+// representing types such as enums, composites, and arrays.
 //
 // In general, instances of TypeValue should not be used to directly represent a value. It should only be used as an
 // encoder and decoder internal to ConnInfo.
@@ -140,8 +138,8 @@ type TypeValue interface {
 	// in an EnumType.
 	CloneTypeValue() Value
 
-	// PgTypeName returns the PostgreSQL name of this type.
-	PgTypeName() string
+	// TypeName returns the PostgreSQL name of this type.
+	TypeName() string
 }
 
 type BinaryDecoder interface {
@@ -433,7 +431,7 @@ func (ci *ConnInfo) DataTypeForValue(v interface{}) (*DataType, bool) {
 	}
 
 	if tv, ok := v.(TypeValue); ok {
-		dt, ok := ci.nameToDataType[tv.PgTypeName()]
+		dt, ok := ci.nameToDataType[tv.TypeName()]
 		return dt, ok
 	}