diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+0.2.5.1
+-------
+* Slightly faster builds due to dropping the need for `template-haskell`.
+
 0.2.5
 -----
 * Support for GHC 7.8 and `lens` 4.x
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright © 2010-2013 Edward Kmett
+Copyright © 2010-2014 Edward Kmett
 Copyright © 2013 Johan Kiviniemi
 
 All rights reserved.
diff --git a/ersatz.cabal b/ersatz.cabal
--- a/ersatz.cabal
+++ b/ersatz.cabal
@@ -1,10 +1,10 @@
 name:           ersatz
-version:        0.2.5
+version:        0.2.5.1
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett, Johan Kiviniemi
 maintainer:     Edward A. Kmett <ekmett@gmail.com>
-copyright:      © 2010-2013 Edward Kmett, © 2013 Johan Kiviniemi
+copyright:      © 2010-2014 Edward Kmett, © 2013 Johan Kiviniemi
 stability:      experimental
 homepage:       http://github.com/ekmett/ersatz
 bug-reports:    http://github.com/ekmett/ersatz/issues
diff --git a/src/Ersatz.hs b/src/Ersatz.hs
--- a/src/Ersatz.hs
+++ b/src/Ersatz.hs
@@ -1,6 +1,7 @@
+{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
@@ -29,4 +30,6 @@
 import Ersatz.Solver
 import Ersatz.Variable
 
+#ifdef HLINT
 {-# ANN module "HLint: ignore Use import/export shortcut" #-}
+#endif
diff --git a/src/Ersatz/Bit.hs b/src/Ersatz/Bit.hs
--- a/src/Ersatz/Bit.hs
+++ b/src/Ersatz/Bit.hs
@@ -11,7 +11,7 @@
 {-# OPTIONS_HADDOCK not-home #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Bits.hs b/src/Ersatz/Bits.hs
--- a/src/Ersatz/Bits.hs
+++ b/src/Ersatz/Bits.hs
@@ -4,7 +4,7 @@
 {-# LANGUAGE Safe #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Decoding.hs b/src/Ersatz/Decoding.hs
--- a/src/Ersatz/Decoding.hs
+++ b/src/Ersatz/Decoding.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE Safe #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Encoding.hs b/src/Ersatz/Encoding.hs
--- a/src/Ersatz/Encoding.hs
+++ b/src/Ersatz/Encoding.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE TypeFamilies #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Equatable.hs b/src/Ersatz/Equatable.hs
--- a/src/Ersatz/Equatable.hs
+++ b/src/Ersatz/Equatable.hs
@@ -12,7 +12,7 @@
 {-# OPTIONS_HADDOCK not-home #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Internal/Formula.hs b/src/Ersatz/Internal/Formula.hs
--- a/src/Ersatz/Internal/Formula.hs
+++ b/src/Ersatz/Internal/Formula.hs
@@ -11,7 +11,7 @@
 {-# OPTIONS_HADDOCK not-home #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Internal/Literal.hs b/src/Ersatz/Internal/Literal.hs
--- a/src/Ersatz/Internal/Literal.hs
+++ b/src/Ersatz/Internal/Literal.hs
@@ -2,7 +2,7 @@
 {-# LANGUAGE Trustworthy #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Internal/Parser.hs b/src/Ersatz/Internal/Parser.hs
--- a/src/Ersatz/Internal/Parser.hs
+++ b/src/Ersatz/Internal/Parser.hs
@@ -1,6 +1,6 @@
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Internal/StableName.hs b/src/Ersatz/Internal/StableName.hs
--- a/src/Ersatz/Internal/StableName.hs
+++ b/src/Ersatz/Internal/StableName.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_HADDOCK not-home #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Problem.hs b/src/Ersatz/Problem.hs
--- a/src/Ersatz/Problem.hs
+++ b/src/Ersatz/Problem.hs
@@ -4,7 +4,6 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE PatternGuards #-}
 {-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE DefaultSignatures #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE OverloadedStrings #-}
@@ -20,7 +19,7 @@
 #endif
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
@@ -87,8 +86,20 @@
   , _stableMap :: !(HashMap (StableName ()) Literal)  -- ^ a mapping used during 'Bit' expansion
   } deriving Typeable
 
-makeLensesWith ?? ''SAT $ classyRules & lensClass.mapped ?~ ("HasSAT","sat")
+class HasSAT s where
+  sat :: Lens' s SAT
 
+  lastAtom :: Lens' s Int
+  lastAtom f = sat $ \ (SAT a b c) -> fmap (\a' -> SAT a' b c) (f a)
+
+  formula :: Lens' s Formula
+  formula f = sat $ \ (SAT a b c) -> fmap (\b' -> SAT a b' c) (f b)
+
+  stableMap :: Lens' s (HashMap (StableName ()) Literal)
+  stableMap f = sat $ \ (SAT a b c) -> SAT a b <$> f c
+
+instance HasSAT SAT where
+  sat = id
 
 instance Show SAT where
   showsPrec p bf = showParen (p > 10)
diff --git a/src/Ersatz/Solution.hs b/src/Ersatz/Solution.hs
--- a/src/Ersatz/Solution.hs
+++ b/src/Ersatz/Solution.hs
@@ -4,7 +4,7 @@
 {-# LANGUAGE Trustworthy #-} -- Safe if lens is Safe
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Solver.hs b/src/Ersatz/Solver.hs
--- a/src/Ersatz/Solver.hs
+++ b/src/Ersatz/Solver.hs
@@ -1,6 +1,6 @@
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Solver/Common.hs b/src/Ersatz/Solver/Common.hs
--- a/src/Ersatz/Solver/Common.hs
+++ b/src/Ersatz/Solver/Common.hs
@@ -1,6 +1,6 @@
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Solver/DepQBF.hs b/src/Ersatz/Solver/DepQBF.hs
--- a/src/Ersatz/Solver/DepQBF.hs
+++ b/src/Ersatz/Solver/DepQBF.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE Trustworthy #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Solver/Minisat.hs b/src/Ersatz/Solver/Minisat.hs
--- a/src/Ersatz/Solver/Minisat.hs
+++ b/src/Ersatz/Solver/Minisat.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE Trustworthy #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
diff --git a/src/Ersatz/Variable.hs b/src/Ersatz/Variable.hs
--- a/src/Ersatz/Variable.hs
+++ b/src/Ersatz/Variable.hs
@@ -5,7 +5,7 @@
 {-# LANGUAGE UndecidableInstances #-}
 --------------------------------------------------------------------
 -- |
--- Copyright :  © Edward Kmett 2010-2013, Johan Kiviniemi 2013
+-- Copyright :  © Edward Kmett 2010-2014, Johan Kiviniemi 2013
 -- License   :  BSD3
 -- Maintainer:  Edward Kmett <ekmett@gmail.com>
 -- Stability :  experimental
