diff --git a/CMark.hsc b/CMark.hsc
--- a/CMark.hsc
+++ b/CMark.hsc
@@ -15,7 +15,7 @@
   , PosInfo(..)
   , DelimType(..)
   , ListType(..)
-  , Tightness
+  , ListAttributes(..)
   , Url
   , Title
   , Level
@@ -49,6 +49,13 @@
   | ORDERED_LIST
   deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)
 
+data ListAttributes = ListAttributes{
+    listType     :: ListType
+  , listTight    :: Bool
+  , listStart    :: Int
+  , listDelim    :: DelimType
+  } deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)
+
 type Url = Text
 
 type Title = Text
@@ -57,9 +64,6 @@
 
 type Info = Text
 
-data Tightness = TIGHT | LOOSE
-  deriving (Show, Read, Eq, Ord, Typeable, Data, Generic)
-
 data NodeType =
     DOCUMENT
   | HRULE
@@ -68,7 +72,7 @@
   | HTML Text
   | CODE_BLOCK Info Text
   | HEADER Level
-  | LIST ListType DelimType Tightness
+  | LIST ListAttributes
   | ITEM
   | TEXT Text
   | SOFTBREAK
@@ -126,7 +130,7 @@
              #const CMARK_NODE_CODE_BLOCK
                -> CODE_BLOCK info literal
              #const CMARK_NODE_LIST
-               -> LIST listType listDelim tightness
+               -> LIST listAttr
              #const CMARK_NODE_ITEM
                -> ITEM
              #const CMARK_NODE_HEADER
@@ -152,17 +156,18 @@
              _ -> error "Unknown node type"
   where literal   = peekCString $ c_cmark_node_get_literal ptr
         level     = c_cmark_node_get_header_level ptr
-        listType  = case c_cmark_node_get_list_type ptr of
-                         (#const CMARK_ORDERED_LIST) -> ORDERED_LIST
-                         (#const CMARK_BULLET_LIST)  -> BULLET_LIST
-                         _                           -> BULLET_LIST
-        listDelim  = case c_cmark_node_get_list_delim ptr of
-                         (#const CMARK_PERIOD_DELIM) -> PERIOD_DELIM
-                         (#const CMARK_PAREN_DELIM)  -> PAREN_DELIM
-                         _                           -> PERIOD_DELIM
-        tightness = case c_cmark_node_get_list_tight ptr of
-                         1                           -> TIGHT
-                         _                           -> LOOSE
+        listAttr  = ListAttributes{
+            listType  = case c_cmark_node_get_list_type ptr of
+                             (#const CMARK_ORDERED_LIST) -> ORDERED_LIST
+                             (#const CMARK_BULLET_LIST)  -> BULLET_LIST
+                             _                           -> BULLET_LIST
+          , listDelim  = case c_cmark_node_get_list_delim ptr of
+                             (#const CMARK_PERIOD_DELIM) -> PERIOD_DELIM
+                             (#const CMARK_PAREN_DELIM)  -> PAREN_DELIM
+                             _                           -> PERIOD_DELIM
+          , listTight  = c_cmark_node_get_list_tight ptr == 1
+          , listStart  = c_cmark_node_get_list_start ptr
+          }
         url       = peekCString $ c_cmark_node_get_url ptr
         title     = peekCString $ c_cmark_node_get_title ptr
         info      = peekCString $ c_cmark_node_get_fence_info ptr
@@ -232,6 +237,9 @@
 
 foreign import ccall "cmark.h cmark_node_get_list_tight"
     c_cmark_node_get_list_tight :: NodePtr -> Int
+
+foreign import ccall "cmark.h cmark_node_get_list_start"
+    c_cmark_node_get_list_start :: NodePtr -> Int
 
 foreign import ccall "cmark.h cmark_node_get_list_delim"
     c_cmark_node_get_list_delim :: NodePtr -> Int
diff --git a/cmark.cabal b/cmark.cabal
--- a/cmark.cabal
+++ b/cmark.cabal
@@ -1,5 +1,5 @@
 name:                cmark
-version:             0.2.0.2
+version:             0.3
 synopsis:            Fast, accurate CommonMark (Markdown) parser and renderer
 description:
   This package provides Haskell bindings for
