patch 7.4.1157
Problem:    type() does not work for v:true, v:none, etc.
Solution:   Add new type numbers.
diff --git a/src/eval.c b/src/eval.c
index c41e4a5..7edae39 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -20157,6 +20157,13 @@
 #ifdef FEAT_FLOAT
 	case VAR_FLOAT:  n = 5; break;
 #endif
+	case VAR_SPECIAL:
+			 if (argvars[0].vval.v_number == VVAL_FALSE
+				 || argvars[0].vval.v_number == VVAL_TRUE)
+			     n = 6;
+			 else
+			     n = 7;
+			 break;
 	default: EMSG2(_(e_intern2), "f_type()"); n = 0; break;
     }
     rettv->vval.v_number = n;