Fix error type to string
diff --git a/error.go b/error.go
index 3a67693..fce9d31 100644
--- a/error.go
+++ b/error.go
@@ -2,7 +2,6 @@
 
 import (
 	"fmt"
-	"reflect"
 )
 
 // ErrorType represents the type of error.
@@ -55,7 +54,36 @@
 )
 
 func (e ErrorType) String() string {
-	return reflect.TypeOf(e).Name()
+	switch e {
+	case ErrUnknown:
+		return "unknown"
+	case ErrExpectedArgument:
+		return "expected argument"
+	case ErrUnknownFlag:
+		return "unknown flag"
+	case ErrUnknownGroup:
+		return "unknown group"
+	case ErrMarshal:
+		return "marshal"
+	case ErrHelp:
+		return "help"
+	case ErrNoArgumentForBool:
+		return "no argument for bool"
+	case ErrRequired:
+		return "required"
+	case ErrShortNameTooLong:
+		return "short name too long"
+	case ErrDuplicatedFlag:
+		return "duplicated flag"
+	case ErrTag:
+		return "tag"
+	case ErrCommandRequired:
+		return "command required"
+	case ErrUnknownCommand:
+		return "unknown command"
+	}
+
+	return "unrecognized error type"
 }
 
 // Error represents a parser error. The error returned from Parse is of this