diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 Changes since 0.8.0
 ==========================================================================
 
+
 Changes since 0.7.0
 ==========================================================================
 
diff --git a/dist/build/Language/C/Parser/Lexer.hs b/dist/build/Language/C/Parser/Lexer.hs
--- a/dist/build/Language/C/Parser/Lexer.hs
+++ b/dist/build/Language/C/Parser/Lexer.hs
@@ -579,19 +579,34 @@
 -- To make this a little more maintainable, we autogenerate it from this list,
 -- using the script GenerateKeywords.hs (in /scripts)
 {-
-alignas _Alignas, alignof _Alignof __alignof alignof __alignof__, asm @__, atomic _Atomic, auto
-break, bool _Bool,
-case, char, const @__, continue, complex _Complex __complex__
+alignas _Alignas,
+alignof _Alignof __alignof alignof __alignof__,
+asm @__,
+atomic _Atomic,
+auto, break, bool _Bool,
+case, char, const @__, continue,
+complex _Complex __complex__
 default, do, double,
 else, enum, extern,
 float, for,
-generic _Generic, goto,
-if, inline @__, int, int128 __int128, long,
-noreturn _Noreturn, _Nonnull __nonnull, _Nullable __nullable,
+generic _Generic,
+goto,
+if, inline @__, int,
+int128 __int128,
+long,
+noreturn _Noreturn,
+nullable _Nullable __nullable,
+nonnull _Nonnull __nonnull,
 register, restrict @__, return
-short, signed @__, sizeof, static, staticAssert _Static_assert, struct, switch,
-typedef, typeof @__, thread __thread _Thread_local
-union, unsigned, void, volatile @__,
+short, signed @__, sizeof, static,
+staticAssert _Static_assert,
+struct, switch,
+typedef, typeof @__,
+thread __thread _Thread_local
+union,
+unsigned,
+void,
+volatile @__,
 while,
 label __label__
 (CTokFloatN 32 False) _Float32
@@ -607,16 +622,18 @@
 (CTokGnuC GnuCVaArg) __builtin_va_arg
 (CTokGnuC GnuCOffsetof) __builtin_offsetof
 (CTokGnuC GnuCTyCompat) __builtin_types_compatible_p
-(CTokClangC ClangBuiltinConvertVector) __builtin_convertvector
+(flip CTokClangC ClangBuiltinConvertVector) __builtin_convertvector
 -}
--- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128 long _Noreturn __nullable __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_convertvector
+-- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128 long _Noreturn _Nullable __nullable _Nonnull __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_convertvector
 idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'a' : 's' : []) = tok 8 CTokAlignas
 idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'o' : 'f' : []) = tok 8 CTokAlignof
 idkwtok ('_' : 'A' : 't' : 'o' : 'm' : 'i' : 'c' : []) = tok 7 CTokAtomic
 idkwtok ('_' : 'B' : 'o' : 'o' : 'l' : []) = tok 5 CTokBool
 idkwtok ('_' : 'C' : 'o' : 'm' : 'p' : 'l' : 'e' : 'x' : []) = tok 8 CTokComplex
 idkwtok ('_' : 'G' : 'e' : 'n' : 'e' : 'r' : 'i' : 'c' : []) = tok 8 CTokGeneric
+idkwtok ('_' : 'N' : 'o' : 'n' : 'n' : 'u' : 'l' : 'l' : []) = tok 8 CTokNonnull
 idkwtok ('_' : 'N' : 'o' : 'r' : 'e' : 't' : 'u' : 'r' : 'n' : []) = tok 9 CTokNoreturn
+idkwtok ('_' : 'N' : 'u' : 'l' : 'l' : 'a' : 'b' : 'l' : 'e' : []) = tok 9 CTokNullable
 idkwtok ('_' : 'S' : 't' : 'a' : 't' : 'i' : 'c' : '_' : 'a' : 's' : 's' : 'e' : 'r' : 't' : []) = tok 14 CTokStaticAssert
 idkwtok ('_' : 'T' : 'h' : 'r' : 'e' : 'a' : 'd' : '_' : 'l' : 'o' : 'c' : 'a' : 'l' : []) = tok 13 CTokThread
 idkwtok ('_' : '_' : 'a' : 'l' : 'i' : 'g' : 'n' : 'o' : 'f' : []) = tok 9 CTokAlignof
diff --git a/language-c.cabal b/language-c.cabal
--- a/language-c.cabal
+++ b/language-c.cabal
@@ -1,5 +1,5 @@
 Name:           language-c
-Version:        0.8
+Version:        0.8.1
 Cabal-Version:  >= 1.8
 Build-Type:     Simple
 License:        BSD3
diff --git a/src/Language/C/Parser/Lexer.x b/src/Language/C/Parser/Lexer.x
--- a/src/Language/C/Parser/Lexer.x
+++ b/src/Language/C/Parser/Lexer.x
@@ -279,19 +279,34 @@
 -- To make this a little more maintainable, we autogenerate it from this list,
 -- using the script GenerateKeywords.hs (in /scripts)
 {-
-alignas _Alignas, alignof _Alignof __alignof alignof __alignof__, asm @__, atomic _Atomic, auto
-break, bool _Bool,
-case, char, const @__, continue, complex _Complex __complex__
+alignas _Alignas,
+alignof _Alignof __alignof alignof __alignof__,
+asm @__,
+atomic _Atomic,
+auto, break, bool _Bool,
+case, char, const @__, continue,
+complex _Complex __complex__
 default, do, double,
 else, enum, extern,
 float, for,
-generic _Generic, goto,
-if, inline @__, int, int128 __int128, long,
-noreturn _Noreturn, _Nonnull __nonnull, _Nullable __nullable,
+generic _Generic,
+goto,
+if, inline @__, int,
+int128 __int128,
+long,
+noreturn _Noreturn,
+nullable _Nullable __nullable,
+nonnull _Nonnull __nonnull,
 register, restrict @__, return
-short, signed @__, sizeof, static, staticAssert _Static_assert, struct, switch,
-typedef, typeof @__, thread __thread _Thread_local
-union, unsigned, void, volatile @__,
+short, signed @__, sizeof, static,
+staticAssert _Static_assert,
+struct, switch,
+typedef, typeof @__,
+thread __thread _Thread_local
+union,
+unsigned,
+void,
+volatile @__,
 while,
 label __label__
 (CTokFloatN 32 False) _Float32
@@ -307,16 +322,18 @@
 (CTokGnuC GnuCVaArg) __builtin_va_arg
 (CTokGnuC GnuCOffsetof) __builtin_offsetof
 (CTokGnuC GnuCTyCompat) __builtin_types_compatible_p
-(CTokClangC ClangBuiltinConvertVector) __builtin_convertvector
+(flip CTokClangC ClangBuiltinConvertVector) __builtin_convertvector
 -}
--- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128 long _Noreturn __nullable __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_convertvector
+-- Tokens: _Alignas _Alignof __alignof alignof __alignof__ __asm asm __asm__ _Atomic auto break _Bool case char __const const __const__ continue _Complex __complex__ default do double else enum extern float for _Generic goto if __inline inline __inline__ int __int128 long _Noreturn _Nullable __nullable _Nonnull __nonnull register __restrict restrict __restrict__ return short __signed signed __signed__ sizeof static _Static_assert struct switch typedef __typeof typeof __typeof__ __thread _Thread_local union unsigned void __volatile volatile __volatile__ while __label__ _Float32 _Float32x _Float64 _Float64x _Float128 __float128 _Float128x __attribute __attribute__ __extension__ __real __real__ __imag __imag__ __builtin_va_arg __builtin_offsetof __builtin_types_compatible_p __builtin_convertvector
 idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'a' : 's' : []) = tok 8 CTokAlignas
 idkwtok ('_' : 'A' : 'l' : 'i' : 'g' : 'n' : 'o' : 'f' : []) = tok 8 CTokAlignof
 idkwtok ('_' : 'A' : 't' : 'o' : 'm' : 'i' : 'c' : []) = tok 7 CTokAtomic
 idkwtok ('_' : 'B' : 'o' : 'o' : 'l' : []) = tok 5 CTokBool
 idkwtok ('_' : 'C' : 'o' : 'm' : 'p' : 'l' : 'e' : 'x' : []) = tok 8 CTokComplex
 idkwtok ('_' : 'G' : 'e' : 'n' : 'e' : 'r' : 'i' : 'c' : []) = tok 8 CTokGeneric
+idkwtok ('_' : 'N' : 'o' : 'n' : 'n' : 'u' : 'l' : 'l' : []) = tok 8 CTokNonnull
 idkwtok ('_' : 'N' : 'o' : 'r' : 'e' : 't' : 'u' : 'r' : 'n' : []) = tok 9 CTokNoreturn
+idkwtok ('_' : 'N' : 'u' : 'l' : 'l' : 'a' : 'b' : 'l' : 'e' : []) = tok 9 CTokNullable
 idkwtok ('_' : 'S' : 't' : 'a' : 't' : 'i' : 'c' : '_' : 'a' : 's' : 's' : 'e' : 'r' : 't' : []) = tok 14 CTokStaticAssert
 idkwtok ('_' : 'T' : 'h' : 'r' : 'e' : 'a' : 'd' : '_' : 'l' : 'o' : 'c' : 'a' : 'l' : []) = tok 13 CTokThread
 idkwtok ('_' : '_' : 'a' : 'l' : 'i' : 'g' : 'n' : 'o' : 'f' : []) = tok 9 CTokAlignof
