diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,16 @@
 
 # Changelog by versions
 
+## From 3.14.0.0 to 3.15.0.0
+
+* New package implemented: AMSSymb.
+* Package beamer further developed.
+* Bug fix: [#35](https://github.com/Daniel-Diaz/HaTeX/issues/35).
+* Added common numeric sets to AMSSymb.
+* Breaking change: AMSMath functions 'pm' and 'mp' changed their
+  type from `LaTeXC l => l -> l -> l` to `LaTeXC l => l`.
+* Additions to the AMSMath module.
+
 ## From 3.13.1.0 to 3.14.0.0
 
 * Fixed link in cabal file.
diff --git a/HaTeX.cabal b/HaTeX.cabal
--- a/HaTeX.cabal
+++ b/HaTeX.cabal
@@ -1,13 +1,13 @@
 Name: HaTeX
-Version: 3.14.0.0
+Version: 3.15.0.0
 Author: Daniel Díaz
-Category: Text, LaTeX
+Category: LaTeX
 Build-type: Simple
 License: BSD3
 License-file: license
 Maintainer: Daniel Díaz (dhelta `dot` diaz `at` gmail `dot` com)
 Bug-reports: https://github.com/Daniel-Diaz/HaTeX/issues
-homepage: http://daniel-diaz.github.io/projects/hatex
+homepage: http://wrongurl.net/haskell/HaTeX
 Synopsis: The Haskell LaTeX library.
 Description: This library implements the LaTeX syntax and provides some useful abstractions.
              .
@@ -88,6 +88,7 @@
         -- Packages
         Text.LaTeX.Packages.AMSFonts
         Text.LaTeX.Packages.AMSMath
+        Text.LaTeX.Packages.AMSSymb
         Text.LaTeX.Packages.AMSThm
         Text.LaTeX.Packages.Babel
         Text.LaTeX.Packages.Beamer
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,8 +1,9 @@
 # The HaTeX library
 
-HaTeX is a Haskell library that implements the *LaTeX syntax*.
+HaTeX is a Haskell library that implements the *LaTeX syntax*, plus some abstractions over it.
 
-Check a list of examples of usage in the [Examples](https://github.com/Daniel-Diaz/HaTeX/tree/master/Examples) directory.
+Check a list of usage examples in the [Examples](https://github.com/Daniel-Diaz/HaTeX/tree/master/Examples) directory
+of the repository in GitHub.
 A good starting point may be [simple.hs](https://github.com/Daniel-Diaz/HaTeX/blob/master/Examples/simple.hs).
 Run any example script executing the ``main`` function.
 
@@ -13,7 +14,7 @@
     $ cabal update
     $ cabal install HaTeX
 
-This will install the latest official release (recommended).
+This will download and install the latest official release (recommended).
 If you want to try a newer version, use _git_ to clone the code contained
 in this repository.
 
@@ -23,14 +24,11 @@
 
 However, note that the API may be unstable and is subject to any kind of change.
 In the other hand, this package follows the [_Package Versioning Policy_](http://www.haskell.org/haskellwiki/Package_versioning_policy),
-so it is unlikely to suffer from API breakages if you follow it too when importing the library.
+so it is unlikely to suffer from API breakages if you follow it too when importing the library (assuming
+you are using the version in Hackage).
 
 See the [Hackage page of HaTeX](http://hackage.haskell.org/package/HaTeX) to browse older versions.
 
-## Travis automatic build
-
-[![Build Status](https://travis-ci.org/Daniel-Diaz/HaTeX.png?branch=master)](https://travis-ci.org/Daniel-Diaz/HaTeX)
-
 ## HaTeX User's Guide
 
 The HaTeX User's Guide lives [here](https://github.com/Daniel-Diaz/hatex-guide)... and is also done in Haskell!
@@ -41,9 +39,11 @@
 To be sure that you are reading the last version, go to the github repository of the guide and follow instructions
 to build it. It is fairly easy.
 
+Please note that the user's guide needs to be updated (contributions are more than welcome!).
+
 ## Community and Contributions
 
-There are many ways to get involved in the HaTeX project.
+There are many ways to get involved in the HaTeX project. Use the most comfortable way for you.
 
 * Fork the [GitHub repository](https://github.com/Daniel-Diaz/HaTeX).
 * Report bugs or make suggestions opening a ticket in the [Issue Tracker](https://github.com/Daniel-Diaz/HaTeX/issues).
@@ -61,6 +61,16 @@
 ## Related projects
 
 * [TeX-my-math](https://github.com/leftaroundabout/Symbolic-math-HaTeX): Experimental library to ease the production
-of mathematical expressions using HaTeX.
-* [haskintex](http://daniel-diaz.github.io/projects/haskintex): Tool to use Haskell and in particular the HaTeX library
+of mathematical expressions using HaTeX (_no longer maintained?_).
+* [haskintex](http://daniel-diaz.github.io/projects/haskintex): Tool to use Haskell (and, additionaly, the HaTeX library)
 within a LaTeX file.
+
+## Travis automatic build
+
+Every time code changes in the GitHub repository, an automatic build checks that the library compiles with several
+versions of GHC (7.4, 7.6, and 7.8) and that all tests pass. This label indicates the result of the last automatic
+build.
+
+[![Build Status](https://travis-ci.org/Daniel-Diaz/HaTeX.png?branch=master)](https://travis-ci.org/Daniel-Diaz/HaTeX)
+
+Currently, automatic builds are only running under Linux. We hope Travis will support other systems in the future.
diff --git a/Text/LaTeX/Base/Commands.hs b/Text/LaTeX/Base/Commands.hs
--- a/Text/LaTeX/Base/Commands.hs
+++ b/Text/LaTeX/Base/Commands.hs
@@ -944,7 +944,7 @@
                                                    , FixArg $ TeXRaw $ render w
                                                    , FixArg t ]
 
-makebox :: LaTeXC l => Maybe Measure -> Maybe Pos -> l -> l
+makebox :: LaTeXC l => Maybe Measure -> Maybe HPos -> l -> l
 makebox Nothing  Nothing  = liftL $ \t -> TeXComm "makebox" [ FixArg t ]
 makebox (Just w) Nothing  = liftL $ \t -> TeXComm "makebox" [ OptArg $ TeXRaw $ render w
                                                             , FixArg t ]
@@ -954,7 +954,7 @@
                                                             , OptArg $ TeXRaw $ render p
                                                             , FixArg t ]	
 
-framebox :: LaTeXC l =>  Maybe Measure -> Maybe Pos -> l -> l
+framebox :: LaTeXC l =>  Maybe Measure -> Maybe HPos -> l -> l
 framebox Nothing Nothing   = liftL $ \t -> TeXComm "framebox" [ FixArg t ]
 framebox (Just w) Nothing  = liftL $ \t -> TeXComm "framebox" [ OptArg $ TeXRaw $ render w
                                                               , FixArg t ]
diff --git a/Text/LaTeX/Base/Render.hs b/Text/LaTeX/Base/Render.hs
--- a/Text/LaTeX/Base/Render.hs
+++ b/Text/LaTeX/Base/Render.hs
@@ -140,13 +140,15 @@
   render TeXEmpty = mempty
 
 instance Render TeXArg where
- render (OptArg l) = "[" <> render l <> "]"
  render (FixArg l) = "{" <> render l <> "}"
+ render (OptArg l) = "[" <> render l <> "]"
  render (MOptArg []) = mempty
  render (MOptArg ls) = "[" <> renderCommas ls <> "]"
  render (SymArg l) = "<" <> render l <> ">"
+ render (MSymArg []) = mempty
  render (MSymArg ls) = "<" <> renderCommas ls <> ">"
  render (ParArg l) = "(" <> render l <> ")"
+ render (MParArg []) = mempty
  render (MParArg ls) = "(" <> renderCommas ls <> ")"
 
 -- Other instances
diff --git a/Text/LaTeX/Base/Types.hs b/Text/LaTeX/Base/Types.hs
--- a/Text/LaTeX/Base/Types.hs
+++ b/Text/LaTeX/Base/Types.hs
@@ -68,6 +68,7 @@
  | ParColumnBot LaTeX -- ^ Paragraph column with text vertically aligned at the bottom. Requires 'array' package.
  | VerticalLine       -- ^ Vertical line between two columns.
  | DVerticalLine      -- ^ Double vertical line between two columns.
+ | Separator LaTeX    -- ^ Column separator. Requires 'array' package.
    deriving Show
 
 instance Render TableSpec where
@@ -79,3 +80,4 @@
  render (ParColumnBot l) = "b" <> render (FixArg l)
  render VerticalLine     = "|"
  render DVerticalLine    = "||"
+ render (Separator l)    = "@" <> render (FixArg l)
diff --git a/Text/LaTeX/Packages/AMSFonts.hs b/Text/LaTeX/Packages/AMSFonts.hs
--- a/Text/LaTeX/Packages/AMSFonts.hs
+++ b/Text/LaTeX/Packages/AMSFonts.hs
@@ -5,9 +5,10 @@
    amsfonts
    -- * Fonts
  , mathbb
+   -- * Number sets
+ , naturals, integers, rationals, reals, complexes
    ) where
 
-import Text.LaTeX.Base.Syntax
 import Text.LaTeX.Base.Class
 import Text.LaTeX.Base.Types
 
@@ -31,4 +32,21 @@
 --
 -- /Note the use of overloaded strings./
 mathbb :: LaTeXC l => l -> l
-mathbb = liftL $ \l -> TeXComm "mathbb" [FixArg l]
+mathbb = comm1 "mathbb"
+
+-- | Number sets
+
+naturals :: LaTeXC l => l
+naturals = mathbb "N"
+
+integers :: LaTeXC l => l
+integers = mathbb "Z"
+
+rationals :: LaTeXC l => l
+rationals = mathbb "Q"
+
+reals :: LaTeXC l => l
+reals = mathbb "R"
+
+complexes :: LaTeXC l => l
+complexes = mathbb "C"
diff --git a/Text/LaTeX/Packages/AMSMath.hs b/Text/LaTeX/Packages/AMSMath.hs
--- a/Text/LaTeX/Packages/AMSMath.hs
+++ b/Text/LaTeX/Packages/AMSMath.hs
@@ -44,7 +44,6 @@
  , integral , integralFromTo
    -- ** Operator symbols
    -- *** Arithmetic
- , pm , mp
  , cdot , times , div_
  , frac
  , (*:) , star
@@ -87,7 +86,8 @@
  , phiu     , chi        , psi
  , psiu     , omega      , omegau
    -- ** Other symbols
- , to , mapsto
+ , pm , mp
+ , to , mapsto, implies
  , forall , exists
  , dagger, ddagger
  , infty
@@ -103,6 +103,8 @@
  , pmatrix  , bmatrix
  , b2matrix , vmatrix
  , v2matrix
+   -- * Math spacing
+ , quad, qquad
    ) where
 
 import Text.LaTeX.Base
@@ -442,14 +444,6 @@
  \l1 l2 ->
    (l1 <> commS "not") `op` l2
 
--- | Plus-or-minus operator (±).
-pm :: LaTeXC l => l -> l -> l
-pm  = between $ comm0 "pm"
-
--- | Minus-or-plus operator (∓).
-mp :: LaTeXC l => l -> l -> l
-mp  = between $ comm0 "mp"
-
 -- | Centered-dot operator (⋅).
 cdot :: LaTeXC l => l -> l -> l
 cdot  = between $ comm0 "cdot"
@@ -756,6 +750,14 @@
 
 ---- Other symbols
 
+-- | Plus-or-minus symbol (±).
+pm :: LaTeXC l => l
+pm  = comm0 "pm"
+
+-- | Minus-or-plus symbol (∓).
+mp :: LaTeXC l => l
+mp  = comm0 "mp"
+
 -- | A right-arrow, →.
 to :: LaTeXC l => l
 to = comm0 "to"
@@ -764,6 +766,10 @@
 mapsto :: LaTeXC l => l
 mapsto = comm0 "mapsto"
 
+-- | An implication arrow, =⇒.
+implies :: LaTeXC l => l
+implies = comm0 "implies"
+
 -- | /For all/ symbol, ∀.
 forall :: LaTeXC l => l
 forall = comm0 "forall"
@@ -789,32 +795,32 @@
 
 -- | Default math symbol font.
 mathdefault :: LaTeXC l => l -> l
-mathdefault = liftL $ \l -> TeXComm "mathdefault" [FixArg l]
+mathdefault = comm1 "mathdefault"
 
 -- | Bold face.
 mathbf :: LaTeXC l => l -> l
-mathbf = liftL $ \l -> TeXComm "mathbf" [FixArg l]
+mathbf = comm1 "mathbf"
 
 -- | Roman, i.e. not-italic math.
 mathrm :: LaTeXC l => l -> l
-mathrm = liftL $ \l -> TeXComm "mathrm" [FixArg l]
+mathrm = comm1 "mathrm"
 
 -- | Calligraphic math symbols.
 mathcal :: LaTeXC l => l -> l
-mathcal = liftL $ \l -> TeXComm "mathcal" [FixArg l]
+mathcal = comm1 "mathcal"
 
 -- | Sans-serif math.
 mathsf :: LaTeXC l => l -> l
-mathsf = liftL $ \l -> TeXComm "mathsf" [FixArg l]
+mathsf = comm1 "mathsf"
 
 -- | Typewriter font.
 mathtt :: LaTeXC l => l -> l
-mathtt = liftL $ \l -> TeXComm "mathtt" [FixArg l]
+mathtt = comm1 "mathtt"
 
 -- | Italic math. Uses the same glyphs as 'mathdefault', but with spacings
 --   intended for multi-character symbols rather than juxtaposition of single-character symbols.
 mathit :: LaTeXC l => l -> l
-mathit = liftL $ \l -> TeXComm "mathit" [FixArg l]
+mathit = comm1 "mathit"
 
 -------------------------------------
 ------------- Matrices --------------
@@ -902,3 +908,26 @@
 -- | Instance defined in "Text.LaTeX.Packages.AMSMath".
 instance Texy a => Texy [a] where
  texy = autoSquareBrackets . mconcat .  intersperse "," .  fmap texy
+
+-------------------------------------
+----------- Math Spacing-------------
+
+-- | \quad space equal to the current font size (= 18 mu)
+quad :: LaTeXC l => l
+quad = comm0 "quad"
+
+-- | \qquad twice of \quad (= 36 mu) 
+qquad :: LaTeXC l => l
+qquad = comm0 "qquad"
+
+{-
+  The following commands are pending. Someone needs to find suitable
+  names for them.
+
+  \, 				3/18 of \quad (= 3 mu)
+  \: 				4/18 of \quad (= 4 mu)
+  \; 				5/18 of \quad (= 5 mu)
+  \! 				-3/18 of \quad (= -3 mu)
+  \ (space after backslash!) 	equivalent of space in normal text
+
+-}
diff --git a/Text/LaTeX/Packages/AMSSymb.hs b/Text/LaTeX/Packages/AMSSymb.hs
new file mode 100644
--- /dev/null
+++ b/Text/LaTeX/Packages/AMSSymb.hs
@@ -0,0 +1,25 @@
+
+-- | Module for the package @amssymb@.
+module Text.LaTeX.Packages.AMSSymb
+ ( -- * AMSSymb package
+   amssymb
+   -- * Fonts
+ , checkmark
+   ) where
+
+import Text.LaTeX.Base.Class
+import Text.LaTeX.Base.Types
+
+-- | AMSSymb package.
+-- Example:
+--
+-- > usepackage [] amssymb
+amssymb :: ClassName
+amssymb = "amssymb"
+
+--
+
+-- | /✔/ symbol.
+checkmark :: LaTeXC l => l
+checkmark = comm0 "checkmark"
+
diff --git a/Text/LaTeX/Packages/Beamer.hs b/Text/LaTeX/Packages/Beamer.hs
--- a/Text/LaTeX/Packages/Beamer.hs
+++ b/Text/LaTeX/Packages/Beamer.hs
@@ -37,6 +37,15 @@
  , beameritem
  , uncover
  , only
+ , onslide
+ , visible
+ , invisible
+ , beamercolor
+ , overprint
+   -- ** Transparency Effects
+ , CoverOption (..)
+ , Opaqueness (..)
+ , setbeamercovered
    -- ** Themes
  , usetheme
  , Theme (..)
@@ -79,16 +88,50 @@
 beameritem :: LaTeXC l => [OverlaySpec] -> l
 beameritem os = fromLaTeX $ TeXComm "item" [ MSymArg $ fmap (TeXRaw . render) os ]
 
--- | With 'uncover', show a piece of text only in the slides you want.
+-- | With 'uncover', show a piece of text only in the slides you
+-- want. On other slides, the text still occupies space and it is still
+-- typeset, but it is not shown or only shown as if transparent.
 uncover :: LaTeXC l => [OverlaySpec] -> l -> l
 uncover os = liftL $ \l -> TeXComm "uncover" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ]
 
--- TODO: What is the difference between 'uncover' and 'only'??
-
--- | Similar to 'uncover'.
+-- | With 'only' the text is inserted only into the specified
+-- slides. For other slides, the text is simply thrown away (it occupies
+-- no space).
 only :: LaTeXC l => [OverlaySpec] -> l -> l
 only os = liftL $ \l -> TeXComm "only" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ]
 
+-- | The behavior of the 'onslide' command depends on whether the
+-- optional argument 'text' is given or not. If a 'text' argument is
+-- present, 'onslide' (without a ⟨modifier⟩) is mapped to 'uncover'.
+onslide :: LaTeXC l => [OverlaySpec] -> l -> l
+onslide os = liftL $ \l -> TeXComm "onslide" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ]
+
+-- | The 'visible' command does almost the same as 'uncover'. The only
+-- difference is that if the text is not shown, it is never shown in a
+-- transparent way, but rather it is not shown at all. Thus for this
+-- command the transparency settings have no effect.
+visible :: LaTeXC l => [OverlaySpec] -> l -> l
+visible os = liftL $ \l -> TeXComm "visible" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ]
+
+-- | The 'invisible' is the opposite of 'visible'.
+invisible :: LaTeXC l => [OverlaySpec] -> l -> l
+invisible os = liftL $ \l -> TeXComm "invisible" [ MSymArg $ fmap (TeXRaw . render) os , FixArg l ]
+
+-- | 'beamercolor' works like 'color', but allows you to specify the slides where
+-- the text will be bold.
+beamercolor :: LaTeXC l => [OverlaySpec] -> l
+beamercolor os = fromLaTeX $ TeXComm "color" [ MSymArg $ fmap (TeXRaw . render) os ]
+
+-- | Inside the 'overprint' environment, use 'onslide' commands to
+-- specify different things that should be shown for this environment on
+-- different slides. Everything within the environment will be placed in
+-- a rectangular area of the specified width. The height and depth of
+-- the area are chosen large enough to acoommodate the largest contents
+-- of this area.
+overprint :: LaTeXC l => l -> l
+overprint = liftL $ TeXEnv "overprint" []
+
+
 -- | Specifications for beamer functions.
 data OverlaySpec =
    OneSlide Int
@@ -109,6 +152,60 @@
       -> l -- ^ Content of the block
       -> l -- ^ Result
 block = liftL2 $ \tit -> TeXEnv "block" [ FixArg tit ]
+
+
+-- Transparency Effects --
+
+-- | Options for covering text
+data CoverOption =
+   Invisible                 -- ^ Causes covered text to completely disappear
+ | Transparent (Maybe Float) -- ^ Causes covered text to be typset in a transparent way
+ | Dynamic                   -- ^ Makes all covered text quite
+                             -- transparent, but in a dynamic way. The
+                             -- longer it will take till the text is
+                             -- uncovered, the stronger the
+                             -- transparency.
+ | HighlyDynamic             -- ^ Has the same effect as dynamic, but
+                             -- the effect is stronger.
+ -- | StillCovered [Opaqueness] -- ^ Specifies how to render covered items
+ --                             -- that have not yet been uncovered.
+ -- | AgainCovered [Opaqueness] -- ^ Specifies how to render covered items
+ --                             -- that have once more been covered, that
+ --                             -- is, that had been shown before but are
+ --                             -- now covered again.
+   deriving Show
+
+instance Render CoverOption where
+ render Invisible               = "invisible"
+ render (Transparent Nothing)   = "transparent"
+ render (Transparent (Just op)) = "transparent=" <> render op
+ render Dynamic                 = "dynamic"
+ render HighlyDynamic           = "highlydynamic"
+ -- FIXME
+ -- render (StillCovered op)       = "still covered=" <> render op
+ -- render (AgainCovered op)       = "again covered=" <> render op
+
+-- | Percentage of opaqueness for the specified overlays.  In
+-- 'Opaqueness overlaySpecification percentageOfOpaqueness' the
+-- 'overlaySpecification' specifies on which slides covered text should
+-- have which 'percentageOfOpaqueness'. Unlike other overlay
+-- specifications, this 'overlaySpecification' is a relative overlay
+-- specification.
+data Opaqueness =
+   Opaqueness [OverlaySpec] Float
+   deriving Show
+
+-- FIXME
+-- instance Render Opaqueness where
+--  render (Opaqueness os op) =
+--   TeXComm "opaqueness" [ MSymArg $ fmap (TeXRaw . render) os, FixArg $ TeXRaw $ render op]
+
+-- | The command 'setbeamercovered' allows you to specify in a quite
+-- general way how a covered item should be rendered.
+setbeamercovered :: LaTeXC l => [CoverOption] -> l
+setbeamercovered co =
+  fromLaTeX $ TeXComm "setbeamercovered" [ FixArg $ TeXRaw $ renderCommas co ]
+
 
 -- THEMES --
 
