diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,24 @@
+PLACEHOLDER
+-----
+
+0.2.6.3
+-----
+* Fixed build errors.
+  * Hide imports of `get` from `Control.Monad.Record`.
+  * Support ``bitmap-0.0.2``s new major API changes that don't conform to the
+    cabal's package versioning policy.
+  * Replaced imports of `Foreign` with `System.IO.Unsafe` for `unsafePerformIO`.
+    `Foreign` no longer provides `unsafePerformIO`.
+  * Replaced calls to `lens` with calls to `lensGS`, since fc-labels recently
+    changed lens to take a getter and a modifier rather than a getter and a
+    setter.  Eventually this library will be ported from `fc-labels` to `lens`,
+    which was written after this project was first developed.
+* Fixed warnings.
+  * Removed redundant import of `Control.Bitmap.Searchable` from
+    `Data.Bitmap.String.Internal`.
+
+0.2.6.2
+-----
+* Add homepage and bug-reports to cabal file, linking to the github repository
+  and its issue tracker, respectively.
+* Added `CHANGELOG.md`.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
diff --git a/bitmaps.cabal b/bitmaps.cabal
--- a/bitmaps.cabal
+++ b/bitmaps.cabal
@@ -1,31 +1,100 @@
-name:                  bitmaps
-version:               0.2.6.0
-cabal-version:         >= 1.10
-build-type:            Simple
-license:               BSD3
-license-file:          LICENSE
-copyright:             Copyright (C) 2010 Byron James Johnson
-author:                Byron James Johnson
-maintainer:            KrabbyKrap@gmail.com
-synopsis:              Bitmap library
-description:           Library defining several bitmap types, including ones stored as unboxed arrays, any string type, and functions
-				       .
-					   This library also supports conversion to and from bitmaps as defined in the "bitmap" package.
-					   .
-					   This library has not yet been tested extensively.
-					   .
-					   Note: This library is currently largely designed with RGB pixels with a color depth of 24 bits in mind.  Better support for other pixel and color formats is intended to be implemented in the future.
-category:              Graphics, Codec, Data
-tested-with:           GHC == 7.0.1
+name:               bitmaps
+-- Don't forget to bump the tag and CHANGELOG placeholder too.
+version:            0.2.6.3
+cabal-version:      >= 1.18
+build-type:         Simple
+license:            BSD3
+license-file:       LICENSE
+copyright:          Copyright (C) 2010 Byron James Johnson
+author:             Byron James Johnson
+maintainer:         ByronJohnsonFP@gmail.com
+category:           Graphics, Codec, Data
+homepage:           https://github.com/bairyn/bitmaps
+bug-reports:        https://github.com/bairyn/bitmaps/issues
+tested-with:        GHC == 7.8.3
+extra-source-files:
+-- The extra-doc-files property requires cabal-version >= 1.18.
+extra-doc-files:
+  README.md
+ ,CHANGELOG.md
+synopsis:           Bitmap library
+description:
+  Library defining several bitmap types, including ones stored as unboxed
+  arrays, any string type, and functions
+  .
+  This library also supports conversion to and from bitmaps as defined in the
+  "bitmap" package.
+  .
+  This library has not yet been tested extensively.
+  .
+  Note: This library is currently largely designed with RGB pixels with a
+  color depth of 24 bits in mind.  Better support for other pixel and color
+  formats is intended to be implemented in the future.
 
 library
-    default-language:  Haskell2010
-    hs-source-dirs:    src
-    build-depends:     base >= 4 && < 5, array, containers, binary, cereal, monad-state, zlib, bitmap, stb-image, string-class >= 0.1.5.0, tagged, bytestring
-    exposed-modules:   Codec.String.Base16, Codec.String.Base64, Data.Bitmap.Array, Data.Bitmap.Array.Internal, Data.Bitmap.BMP, Data.Bitmap.Class, Data.Bitmap.Croppable, Data.Bitmap.Foreign, Data.Bitmap.Function, Data.Bitmap.Function.Internal, Data.Bitmap.Pixel, Data.Bitmap.Reflectable, Data.Bitmap.Searchable, Data.Bitmap.String, Data.Bitmap.String.Internal, Data.Bitmap.StringRGB24A4VR, Data.Bitmap.StringRGB24A4VR.Internal, Data.Bitmap.StringRGB32, Data.Bitmap.StringRGB32.Internal, Data.Bitmap.Types, Data.Bitmap.Util
-    ghc-options:       -Wall -O2
-    other-extensions:  ScopedTypeVariables, TypeFamilies, GeneralizedNewtypeDeriving, PolymorphicComponents, TupleSections, FlexibleContexts, TemplateHaskell, DeriveDataTypeable, ExistentialQuantification, TypeOperators, FlexibleInstances, OverlappingInstances, UndecidableInstances
+  default-language: Haskell2010
+  hs-source-dirs:   src
+  ghc-options:      -Wall
+  default-extensions:
+   --,GADTs
+    TemplateHaskell
+   ,DeriveDataTypeable
+  other-extensions:
+    ScopedTypeVariables
+   ,TypeFamilies
+   ,GeneralizedNewtypeDeriving
+   ,PolymorphicComponents
+   ,TupleSections
+   ,FlexibleContexts
+   ,TemplateHaskell
+   ,DeriveDataTypeable
+   ,ExistentialQuantification
+   ,TypeOperators
+   ,FlexibleInstances
+   ,OverlappingInstances
+   ,UndecidableInstances
+  -- TODO: add version constraints.
+  build-depends:
+    base         >= 4        && < 5
+   ,array
+   ,containers
+   ,binary
+   ,cereal
+   ,monad-state  >= 0.1.1.3
+   ,zlib
+   ,bitmap       >= 0.0.2
+   ,stb-image
+   ,string-class >= 0.1.5.0
+   ,tagged
+   ,bytestring
+  exposed-modules:
+    Codec.String.Base16
+   ,Codec.String.Base64
+   ,Data.Bitmap.Array
+   ,Data.Bitmap.Array.Internal
+   ,Data.Bitmap.BMP
+   ,Data.Bitmap.Class
+   ,Data.Bitmap.Croppable
+   ,Data.Bitmap.Foreign
+   ,Data.Bitmap.Function
+   ,Data.Bitmap.Function.Internal
+   ,Data.Bitmap.Pixel
+   ,Data.Bitmap.Reflectable
+   ,Data.Bitmap.Searchable
+   ,Data.Bitmap.String
+   ,Data.Bitmap.String.Internal
+   ,Data.Bitmap.StringRGB24A4VR
+   ,Data.Bitmap.StringRGB24A4VR.Internal
+   ,Data.Bitmap.StringRGB32
+   ,Data.Bitmap.StringRGB32.Internal
+   ,Data.Bitmap.Types
+   ,Data.Bitmap.Util
 
 source-repository head
-    type:              darcs
-    location:          http://patch-tag.com/r/bob/abitmap
+  type:     git
+  location: git@github.com:bairyn/bitmaps.git
+
+source-repository this
+  type:     git
+  location: git@github.com:bairyn/bitmaps.git
+  tag:      v0.2.6.3
diff --git a/src/Data/Bitmap/Foreign.hs b/src/Data/Bitmap/Foreign.hs
--- a/src/Data/Bitmap/Foreign.hs
+++ b/src/Data/Bitmap/Foreign.hs
@@ -1,23 +1,25 @@
 {-# LANGUAGE TypeFamilies, ScopedTypeVariables #-}
 
--- | Wrapping interface for bitmaps as defined by the 'bitmap' package
-
+-- | Wrapping interface for 'IOBitmap's as defined by the "bitmap" package
+--
+-- TODO: Add support for "bitmap"'s pure bitmap type.
+-- Since this package was originally written, 'bitmap' version 0.0.2 was
+-- released with new support for using both 'IOBitmap's and pure @Bitmap@s.
 module Data.Bitmap.Foreign
     ( FBBitmapBase
     , BitmapForeign(..)
     ) where
 
-import Control.Monad.Record
-import qualified Data.Bitmap      as FB
-import qualified Data.Bitmap.IO   as FB
-import Data.Bitmap.Class
-import Data.Bitmap.Pixel
-import Data.Bitmap.Types
-import Foreign (unsafePerformIO)
-import Foreign.Storable
-import Text.Printf
+import           Control.Monad.Record
+import qualified Data.Bitmap.IO       as FB
+import           Data.Bitmap.Class
+import           Data.Bitmap.Pixel
+import           Data.Bitmap.Types
+import           Foreign.Storable
+import           System.IO.Unsafe           (unsafePerformIO)
+import           Text.Printf
 
-type FBBitmapBase = FB.Bitmap
+type FBBitmapBase = FB.IOBitmap
 
 -- | The foreign bitmap as defined by the "bitmap" package
 --
@@ -31,14 +33,14 @@
     type BIndexType BitmapForeign = Int
     type BPixelType BitmapForeign = PixelRGB
 
-    depth (BitmapForeign b) = unsafePerformIO . FB.withBitmap b $ \_ numComponents _ _ -> case numComponents of
+    depth (BitmapForeign b) = unsafePerformIO . FB.withIOBitmap b $ \_ numComponents _ _ -> case numComponents of
         3 -> return Depth24RGB
         4 -> return Depth32RGBA
         _ -> return $ error $ printf "Bitmap.ForeignBitmap.depth: invalid numConponents value: %d" numComponents
 
-    dimensions (BitmapForeign b) = unsafePerformIO . FB.withBitmap b $ \dms _ _ _ -> return dms
+    dimensions (BitmapForeign b) = unsafePerformIO . FB.withIOBitmap b $ \dms _ _ _ -> return dms
 
-    getPixel (BitmapForeign b) (row, column) = unsafePerformIO . FB.withBitmap b $ \(w, _) numComponents padding ptr -> do
+    getPixel (BitmapForeign b) (row, column) = unsafePerformIO . FB.withIOBitmap b $ \(w, _) numComponents padding ptr -> do
         let bytesPixel = numComponents
             bytesRow   = bytesPixel * w + padding
             offset     = bytesRow * row + bytesPixel * column
@@ -48,8 +50,8 @@
         return . (red =: thisRed) . (green =: thisGreen) . (blue =: thisBlue) $ leastIntensity
     constructPixels f dms@(w, _) = unsafePerformIO $ do
         let bytesPixel = 3
-        fbBitmap <- FB.newBitmap dms bytesPixel (Just 4)
-        FB.withBitmap fbBitmap $ \(width, height) _ padding ptr -> do
+        fbBitmap <- FB.newIOBitmap dms bytesPixel (Just 4)
+        FB.withIOBitmap fbBitmap $ \(width, height) _ padding ptr -> do
             let bytesRow  = bytesPixel * w + padding
                 maxRow    = abs . pred $ height
                 maxColumn = abs . pred $ width
diff --git a/src/Data/Bitmap/Pixel.hs b/src/Data/Bitmap/Pixel.hs
--- a/src/Data/Bitmap/Pixel.hs
+++ b/src/Data/Bitmap/Pixel.hs
@@ -46,11 +46,11 @@
 import Data.Maybe
 import qualified Data.String.Class as S
 import Data.Word
-import Foreign (unsafePerformIO)
 import Foreign.C.Types
 import Foreign.Ptr
 import Foreign.Marshal.Utils
 import Foreign.Storable
+import System.IO.Unsafe (unsafePerformIO)
 
 class (Integral a, ConvPixelRGB a, ConvPixelRGBA a, ConvPixelBGR a, ConvPixelBGRA a) => Pixel a where
     red   ::        a :-> PixelComponent
@@ -128,9 +128,9 @@
     deriving (Eq, Bounded, Enum, Ord, Real, Integral, Bits, Num, Show, Data, Typeable)
 
 byteLens :: (Integral p, Bits p) => Integer -> (p :-> Word8)
-byteLens 0 = lens (fromIntegral) (\w p -> (p .&. complement 0xFF) .|. fromIntegral w)
+byteLens 0 = lensGS (fromIntegral) (\w p -> (p .&. complement 0xFF) .|. fromIntegral w)
 byteLens i = let i' = fromIntegral i
-             in  lens (fromIntegral . (`shiftR` i')) (\w p -> (p .&. complement (0xFF `shiftL` i')) .|. fromIntegral w `shiftL` i')
+             in  lensGS (fromIntegral . (`shiftR` i')) (\w p -> (p .&. complement (0xFF `shiftL` i')) .|. fromIntegral w `shiftL` i')
 
 instance Pixel PixelRGB where
     red   = byteLens 16
@@ -272,7 +272,7 @@
 lsetter i = \component storage -> storage .|. (((fromIntegral (component :: GenPixelComponent)) :: GenPixelStorage) `shiftL` (fromIntegral i))
 
 genRed :: GenPixel :-> GenPixelComponent
-genRed = lens getter setter
+genRed = lensGS getter setter
     where getter           (GenPixelRGB  storage) =             lgetter 16 storage
           getter           (GenPixelBGR  storage) =             lgetter 0  storage
           getter           (GenPixelRGBA storage) =             lgetter 24 storage
@@ -283,7 +283,7 @@
           setter component (GenPixelBGRA storage) = GenPixelBGRA $ lsetter 8  component storage
 
 genGreen :: GenPixel :-> GenPixelComponent
-genGreen = lens getter setter
+genGreen = lensGS getter setter
     where getter           (GenPixelRGB  storage) =             lgetter 8  storage
           getter           (GenPixelBGR  storage) =             lgetter 8  storage
           getter           (GenPixelRGBA storage) =             lgetter 16 storage
@@ -294,7 +294,7 @@
           setter component (GenPixelBGRA storage) = GenPixelBGRA $ lsetter 16 component storage
 
 genBlue :: GenPixel :-> GenPixelComponent
-genBlue = lens getter setter
+genBlue = lensGS getter setter
     where getter           (GenPixelRGB  storage) =             lgetter 0  storage
           getter           (GenPixelBGR  storage) =             lgetter 16 storage
           getter           (GenPixelRGBA storage) =             lgetter 8  storage
@@ -305,7 +305,7 @@
           setter component (GenPixelBGRA storage) = GenPixelBGRA $ lsetter 24 component storage
 
 genAlpha :: GenPixel :-> GenPixelComponent
-genAlpha = lens getter setter
+genAlpha = lensGS getter setter
     where getter             (GenPixelRGB  _)       =             greatestIntensityComponent
           getter             (GenPixelBGR  _)       =             greatestIntensityComponent
           getter             (GenPixelRGBA storage) =             lgetter 0  storage
diff --git a/src/Data/Bitmap/String/Internal.hs b/src/Data/Bitmap/String/Internal.hs
--- a/src/Data/Bitmap/String/Internal.hs
+++ b/src/Data/Bitmap/String/Internal.hs
@@ -30,14 +30,13 @@
 
 import Control.Applicative
 --import Control.Arrow  -- See serializers part of 'BitmapString's 'Bitmap' instance
-import Control.Monad.Record
+import Control.Monad.Record                 hiding (get)
 import Data.Bits
 import Data.Binary
 import Data.Bitmap.Class
 import Data.Bitmap.Croppable
 import Data.Bitmap.Pixel
 import Data.Bitmap.Reflectable
-import Data.Bitmap.Searchable
 import Data.Bitmap.Types
 import Data.Bitmap.Util
 import qualified Data.ByteString.Lazy as B
diff --git a/src/Data/Bitmap/StringRGB24A4VR/Internal.hs b/src/Data/Bitmap/StringRGB24A4VR/Internal.hs
--- a/src/Data/Bitmap/StringRGB24A4VR/Internal.hs
+++ b/src/Data/Bitmap/StringRGB24A4VR/Internal.hs
@@ -14,14 +14,14 @@
 
 import Control.Applicative
 import Control.Arrow
-import Control.Monad.Record
+import Control.Monad.Record                hiding (get)
 import Data.Binary
 import Data.Bitmap.Class
 import Data.Bitmap.Pixel
 import Data.Bitmap.Reflectable
 import Data.Bitmap.Searchable
 import Data.Bitmap.Types
-import Data.Bitmap.Util hiding (padByte)
+import Data.Bitmap.Util                    hiding (padByte)
 import Data.Bits
 import qualified Data.ByteString      as B
 import qualified Data.Serialize       as S
diff --git a/src/Data/Bitmap/StringRGB32/Internal.hs b/src/Data/Bitmap/StringRGB32/Internal.hs
--- a/src/Data/Bitmap/StringRGB32/Internal.hs
+++ b/src/Data/Bitmap/StringRGB32/Internal.hs
@@ -10,14 +10,14 @@
 
 import Control.Applicative
 import Control.Arrow
-import Control.Monad.Record
+import Control.Monad.Record                hiding (get)
 import Data.Binary
 import Data.Bitmap.Class
 import Data.Bitmap.Pixel
 import Data.Bitmap.Reflectable
 import Data.Bitmap.Searchable
 import Data.Bitmap.Types
-import Data.Bitmap.Util hiding (padByte)
+import Data.Bitmap.Util                    hiding (padByte)
 import Data.Bits
 import qualified Data.ByteString      as B
 import qualified Data.Serialize       as S
