diff --git a/language-ats.cabal b/language-ats.cabal
--- a/language-ats.cabal
+++ b/language-ats.cabal
@@ -1,5 +1,5 @@
 name:                language-ats
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            Parser and pretty-printer for ATS.
 description:         Parser and pretty-printer for [ATS](http://www.ats-lang.org/), written with Happy and Alex.
 license:             BSD3
diff --git a/src/Language/ATS/Parser.y b/src/Language/ATS/Parser.y
--- a/src/Language/ATS/Parser.y
+++ b/src/Language/ATS/Parser.y
@@ -665,6 +665,7 @@
 -- | Parse a declaration defining a type
 TypeDecl : typedef IdentifierOr SortArgs eq Type { TypeDef $1 $2 $3 $5 }
          | vtypedef IdentifierOr SortArgs eq Type { ViewTypeDef $1 $2 $3 $5 }
+         | extern vtypedef string SortArgs eq Type { Extern $1 $ ViewTypeDef $2 $3 $4 $6 }
          | datatype IdentifierOr SortArgs eq Leaves { SumType $2 $3 $5 }
          | datavtype IdentifierOr SortArgs eq Leaves { SumViewType $2 $3 $5 }
          | abst0p IdentifierOr SortArgs MaybeType { AbsT0p $1 $2 $3 $4 }
@@ -677,6 +678,7 @@
          | absprop IdentifierOr openParen FullArgs closeParen { AbsProp $1 $2 $4 }
          | AndSort { $1 }
          | AndStadef { $1 }
+         | extern typedef {% Left $ Expected $2 "external declaration" "typedef" }
          | vtypedef IdentifierOr SortArgs eq vbar {% Left $ Expected $5 "Viewtype" "|" }
          | typedef IdentifierOr SortArgs eq vbar {% Left $ Expected $5 "Type" "|" }
          | datavtype IdentifierOr SortArgs vbar {% Left $ Expected $4 "=" "|" }
