diff --git a/c-enum.cabal b/c-enum.cabal
--- a/c-enum.cabal
+++ b/c-enum.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           c-enum
-version:        0.1.1.0
+version:        0.1.1.2
 synopsis:       To make a type corresponding to an enum of C language
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/c-enum#readme>
 category:       Foreign
diff --git a/src/Foreign/C/Enum.hs b/src/Foreign/C/Enum.hs
--- a/src/Foreign/C/Enum.hs
+++ b/src/Foreign/C/Enum.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE TemplateHaskell #-}
 {-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
 
-module Foreign.C.Enum (enum) where
+module Foreign.C.Enum (enum, enumMems) where
 
 import Language.Haskell.TH (
 	Name, mkName, newName, Lit(..), clause, cxt, normalB,
@@ -27,7 +27,7 @@
 	<*> bool (pure id) ((:) <$> mkRead nt ns) br
 	<*> bool (pure id)
 		((:) <$> deriveStorable (mkName nt) t) bst
-	<*> mkMembers nt nvs
+	<*> enumMems nt nvs
 	where ShowReadClasses bs br bst ds' = showReadClasses ds; ns = fst <$> nvs
 
 {- ^
@@ -35,11 +35,11 @@
 Write like the following.
 
 @
-enum Foo ''Int [''Show, ''Read, ''Eq] [
-	("FooError", - 1),
-	("FooZero", 0),
-	("FooOne", 1),
-	("FooTwo", 2) ]
+enum \"Foo\" ''Int [''Show, ''Read, ''Eq] [
+	(\"FooError\", - 1),
+	(\"FooZero\", 0),
+	(\"FooOne\", 1),
+	(\"FooTwo\", 2) ]
 @
 
 Then you get like the following.
@@ -103,8 +103,20 @@
 			(conT t)])
 	[derivClause Nothing $ conT <$> ds]
 
-mkMembers :: String -> [(String, Integer)] -> DecsQ
-mkMembers t nvs = concat <$> uncurry (mkMember (mkName t)) `mapM` nvs
+enumMems :: String -> [(String, Integer)] -> DecsQ
+enumMems t nvs = concat <$> uncurry (mkMember (mkName t)) `mapM` nvs
+
+{- ^
+
+You can define enum members separately.
+
+@
+enumMems \"Foo\" [
+	(\"FooThree\", 3),
+	(\"FooFour\", 4) ]
+@
+
+-}
 
 mkMember :: Name -> String -> Integer -> DecsQ
 mkMember t n v = sequence [
