diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 0.2.1
+* Parsing of qualified identifiers
+
 # 0.2.0
 * Type-changing updates
 * Reimplemented the `Record.Types` API
diff --git a/library/Record/Parser.hs b/library/Record/Parser.hs
--- a/library/Record/Parser.hs
+++ b/library/Record/Parser.hs
@@ -9,7 +9,7 @@
 data Type =
   Type_App Type Type |
   Type_Var Text |
-  Type_Con Text |
+  Type_Con Ident |
   Type_Tuple Int |
   Type_Arrow |
   Type_List |
@@ -79,7 +79,7 @@
         varType =
           fmap Type_Var $ lowerCaseName
         conType =
-          fmap Type_Con $ upperCaseName
+          fmap Type_Con $ upperCaseIdent
         tupleConType =
           Type_Tuple 0 <$ string "()" <|>
           Type_Tuple . succ . length <$> (char '(' *> many (char ',') <* char ')')
@@ -157,7 +157,26 @@
 charLit =
   char '\'' *> ((char '\\' *> (char '\'' <|> char '\\')) <|> notChar '\'') <* char '\''
 
+type Ident =
+  Text
 
+lowerCaseIdent :: Parser Ident
+lowerCaseIdent =
+  labeled "lowerCaseIdent" $
+  fmap (T.intercalate ".") $
+    (<>) <$>
+      (many (upperCaseName <* char '.')) <*>
+      (pure <$> (lowerCaseName <|> symbolicIdent))
+
+upperCaseIdent :: Parser Ident
+upperCaseIdent =
+  labeled "upperCaseIdent" $
+  fmap (T.intercalate ".") $
+    (<>) <$>
+      (many (upperCaseName <* char '.')) <*>
+      (pure <$> (upperCaseName <|> symbolicIdent))
+
+
 type Lens =
   [Text]
 
@@ -169,8 +188,8 @@
 
 data Exp =
   Exp_Record RecordExp |
-  Exp_Var Text |
-  Exp_Con Text |
+  Exp_Var Ident |
+  Exp_Con Ident |
   Exp_TupleCon Int |
   Exp_Nil |
   Exp_Lit Lit |
@@ -235,9 +254,9 @@
                     field =
                       (,) <$> lowerCaseName <*> (skipSpace *> char '=' *> skipSpace *> exp)
             var =
-              Exp_Var <$> (lowerCaseName <|> symbolicIdent)
+              Exp_Var <$> lowerCaseIdent
             con =
-              Exp_Con <$> (upperCaseName <|> symbolicIdent)
+              Exp_Con <$> upperCaseIdent
             tupleCon =
               Exp_TupleCon 0 <$ string "()" <|>
               Exp_TupleCon . succ . length <$> (char '(' *> many (char ',') <* char ')')
diff --git a/record.cabal b/record.cabal
--- a/record.cabal
+++ b/record.cabal
@@ -1,7 +1,7 @@
 name:
   record
 version:
-  0.2.0
+  0.2.1
 synopsis:
   First class records implemented with quasi-quotation
 description:
