diff --git a/language-vhdl.cabal b/language-vhdl.cabal
--- a/language-vhdl.cabal
+++ b/language-vhdl.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                language-vhdl
-version:             0.1.2.2
+version:             0.1.2.3
 synopsis:            VHDL AST and pretty printer in Haskell.
 -- description:         
 license:             BSD3
diff --git a/src/Language/VHDL/Pretty.hs b/src/Language/VHDL/Pretty.hs
--- a/src/Language/VHDL/Pretty.hs
+++ b/src/Language/VHDL/Pretty.hs
@@ -342,7 +342,7 @@
   pp (DMechInertial e) = condL (text "REJECT") e <+> text "INERTIAL"
 
 instance Pretty DesignUnit where
-  pp (DesignUnit primary secondary) = pp primary <+> pp secondary
+  pp (DesignUnit ctxt lib) = pp ctxt <+> pp lib
 
 instance Pretty Designator where
   pp (DId i) = pp i
@@ -633,7 +633,9 @@
 instance Pretty LibraryClause where
   pp (LibraryClause ns) = text "LIBRARY" <+> pp ns <+> semi
 
-instance Pretty LibraryUnit where pp = error "missing: LibraryUnit" -- todo
+instance Pretty LibraryUnit where
+  pp (LibraryPrimary p)   = pp p
+  pp (LibrarySecondary s) = pp s
 
 instance Pretty Literal where
   pp (LitNum n)       = pp n
diff --git a/src/Language/VHDL/Syntax.hs b/src/Language/VHDL/Syntax.hs
--- a/src/Language/VHDL/Syntax.hs
+++ b/src/Language/VHDL/Syntax.hs
@@ -2648,10 +2648,7 @@
 
 type DesignFile = [DesignUnit]
 
-data DesignUnit = DesignUnit {
-    design_primary_unit   :: PrimaryUnit
-  , design_secondary_unit :: SecondaryUnit
-  }
+data DesignUnit = DesignUnit ContextClause LibraryUnit
   deriving (Eq, Show)
 
 data LibraryUnit =
