diff --git a/src/Data/String/Class.hs b/src/Data/String/Class.hs
--- a/src/Data/String/Class.hs
+++ b/src/Data/String/Class.hs
@@ -31,6 +31,9 @@
 import qualified Data.Text.Encoding as TE
 import qualified Data.Text.Encoding.Error as TEE
 import qualified Data.Text.IO as T
+import qualified Data.Text.Lazy as LT
+import qualified Data.Text.Lazy.Encoding as LTE
+import qualified Data.Text.Lazy.IO as LT
 import Data.Typeable
 import Data.Word
 import qualified System.IO as IO
@@ -40,7 +43,7 @@
 instance (StringCells s, StringRWIO s) => Stringy s
 
 -- | Minimal complete definition: StringCellChar; StringCellAltChar; toStringCells; fromStringCells; toMainChar; toAltChar; cons; snoc; either all of head, tail, last, and init, or all of uncons and unsnoc; take, take64 or genericTake; drop, drop64, or genericDrop; and length, length64, or genericLength
-class (Eq s, Monoid s, IsString s, Typeable s, StringCell (StringCellChar s), StringCell (StringCellAltChar s), ConvGenString s, ConvString s, ConvStrictByteString s, ConvLazyByteString s, ConvText s) => StringCells s where
+class (Eq s, Monoid s, IsString s, Typeable s, StringCell (StringCellChar s), StringCell (StringCellAltChar s), ConvGenString s, ConvString s, ConvStrictByteString s, ConvLazyByteString s, ConvText s, ConvLazyText s) => StringCells s where
     type StringCellChar s
     type StringCellAltChar s
 
@@ -80,12 +83,14 @@
 
     -- | Construction of a string; implementations should behave safely with incorrect lengths
     --
-    -- The default implementation of 'undfoldr' is independent from that of 'altUnfoldr',
+    -- The default implementation of 'unfoldr' is independent from that of 'altUnfoldr',
     -- as well as 'unfoldrN' as and 'altUnfoldrN'.
-    unfoldr     ::        (a -> Maybe (StringCellChar    s, a)) -> a -> s
-    altUnfoldr  ::        (a -> Maybe (StringCellAltChar s, a)) -> a -> s
-    unfoldrN    :: Int -> (a -> Maybe (StringCellChar    s, a)) -> a -> s
-    altUnfoldrN :: Int -> (a -> Maybe (StringCellAltChar s, a)) -> a -> s
+    unfoldr       ::          (a -> Maybe (StringCellChar    s, a)) -> a -> s
+    altUnfoldr    ::          (a -> Maybe (StringCellAltChar s, a)) -> a -> s
+    unfoldrN      :: Int   -> (a -> Maybe (StringCellChar    s, a)) -> a -> s
+    altUnfoldrN   :: Int   -> (a -> Maybe (StringCellAltChar s, a)) -> a -> s
+    unfoldrN64    :: Int64 -> (a -> Maybe (StringCellChar    s, a)) -> a -> s
+    altUnfoldrN64 :: Int64 -> (a -> Maybe (StringCellAltChar s, a)) -> a -> s
 
     unfoldr f b =
         case f b of
@@ -99,6 +104,10 @@
     unfoldrN    = const unfoldr
     altUnfoldrN = const altUnfoldr
 
+    unfoldrN64 l f z = unfoldrN (fromIntegral l) f z
+
+    altUnfoldrN64 l f z = altUnfoldrN (fromIntegral l) f z
+
     -- | Get the character at the given position
     --
     -- Just like 'drop', 'drop64', and the variants of those functions, the
@@ -333,6 +342,10 @@
     toText :: s -> T.Text
     fromText :: T.Text -> s
 
+class ConvLazyText s where
+    toLazyText :: s -> LT.Text
+    fromLazyText :: LT.Text -> s
+
 -- | Minimal complete definition: 'hGetContents', 'hGetLine', 'hPutStr', and 'hPutStrLn'
 class StringRWIO s where
     --- Handles
@@ -531,6 +544,36 @@
     append          = T.append
     concat          = T.concat
 
+instance StringCells LT.Text where
+    type StringCellChar    LT.Text = Char
+    type StringCellAltChar LT.Text = Char
+
+    toStringCells   = fromLazyText
+    fromStringCells = toLazyText
+
+    length64        = LT.length
+    empty           = LT.empty
+    null            = LT.null
+    cons            = LT.cons
+    safeUncons      = LT.uncons
+    uncons          = maybe (error "StringCells.Data.Text.Lazy.Text.uncons: string is null") id . safeUncons
+    snoc            = LT.snoc
+    altSnoc         = LT.snoc
+    toMainChar      = Tagged . toChar
+    toAltChar       = Tagged . toChar
+    head            = LT.head
+    tail            = LT.tail
+    init            = LT.init
+    last            = LT.last
+    unfoldr         = LT.unfoldr
+    altUnfoldr      = LT.unfoldr
+    unfoldrN64      = LT.unfoldrN
+    altUnfoldrN64   = LT.unfoldrN
+    index s         = index64 s . fromIntegral
+    index64         = LT.index
+    append          = LT.append
+    concat          = LT.concat
+
 instance StringCell Char where
     toChar     = id
     toWord8    = BI.c2w
@@ -615,6 +658,11 @@
     fromGenString _s = case _s of
         (GenString _s) -> toStringCells _s
 
+instance ConvGenString LT.Text where
+    toGenString      = GenString
+    fromGenString _s = case _s of
+        (GenString _s) -> toStringCells _s
+
 instance ConvString GenString where
     toString   = fromGenString
     fromString = toGenString
@@ -635,6 +683,10 @@
     toString   = T.unpack
     fromString = T.pack
 
+instance ConvString LT.Text where
+    toString   = LT.unpack
+    fromString = LT.pack
+
 instance ConvStrictByteString GenString where
     toStrictByteString   = fromGenString
     fromStrictByteString = toGenString
@@ -648,13 +700,17 @@
     fromStrictByteString = id
 
 instance ConvStrictByteString L.ByteString where
-    toStrictByteString   = S.concat . L.toChunks
+    toStrictByteString   = L.toStrict
     fromStrictByteString = toLazyByteString
 
 instance ConvStrictByteString T.Text where
     toStrictByteString   = TE.encodeUtf8
     fromStrictByteString = toText
 
+instance ConvStrictByteString LT.Text where
+    toStrictByteString   = toStrictByteString . LTE.encodeUtf8
+    fromStrictByteString = toLazyText
+
 instance ConvLazyByteString GenString where
     toLazyByteString   = fromGenString
     fromLazyByteString = toGenString
@@ -664,7 +720,7 @@
     fromLazyByteString = LC.unpack
 
 instance ConvLazyByteString S.ByteString where
-    toLazyByteString   = L.fromChunks . (:[])
+    toLazyByteString   = L.fromStrict
     fromLazyByteString = toStrictByteString
 
 instance ConvLazyByteString L.ByteString where
@@ -675,6 +731,10 @@
     toLazyByteString   = toLazyByteString . toStrictByteString
     fromLazyByteString = toText
 
+instance ConvLazyByteString LT.Text where
+    toLazyByteString   = toLazyByteString . toStrictByteString
+    fromLazyByteString = toLazyText
+
 instance ConvText GenString where
     toText   = fromGenString
     fromText = toGenString
@@ -695,6 +755,34 @@
     toText   = id
     fromText = id
 
+instance ConvText LT.Text where
+    toText   = LT.toStrict
+    fromText = toLazyText
+
+instance ConvLazyText GenString where
+    toLazyText   = fromGenString
+    fromLazyText = toGenString
+
+instance ConvLazyText String where
+    toLazyText   = LT.pack
+    fromLazyText = LT.unpack
+
+instance ConvLazyText S.ByteString where
+    toLazyText   = LTE.decodeUtf8With TEE.lenientDecode . toLazyByteString
+    fromLazyText = toStrictByteString
+
+instance ConvLazyText L.ByteString where
+    toLazyText   = LTE.decodeUtf8With TEE.lenientDecode
+    fromLazyText = toLazyByteString
+
+instance ConvLazyText T.Text where
+    toLazyText   = LT.fromStrict
+    fromLazyText = fromLazyText
+
+instance ConvLazyText LT.Text where
+    toLazyText   = id
+    fromLazyText = id
+
 -- |
 --
 -- This is minimally defined with 'GenStringDefault'.
@@ -753,7 +841,7 @@
 
     hPutStr      = S.hPutStr
 
-    hPutStrLn    = S.hPutStrLn
+    hPutStrLn    = SC.hPutStrLn
 
     interact     = S.interact
 
@@ -763,7 +851,7 @@
 
     putStr       = S.putStr
 
-    putStrLn     = S.putStrLn
+    putStrLn     = SC.putStrLn
 
     readFile     = S.readFile
 
@@ -794,7 +882,7 @@
 
     putStr       = L.putStr
 
-    putStrLn     = L.putStrLn
+    putStrLn     = LC.putStrLn
 
     readFile     = L.readFile
 
@@ -829,6 +917,34 @@
     writeFile    = T.writeFile
 
     appendFile   = T.appendFile
+
+-- |
+--
+-- See 'Data.Text.Lazy.IO' for documentation of behaviour.
+instance StringRWIO LT.Text where
+    hGetContents = LT.hGetContents
+
+    hGetLine     = LT.hGetLine
+
+    hPutStr      = LT.hPutStr
+
+    hPutStrLn    = LT.hPutStrLn
+
+    interact     = LT.interact
+
+    getContents  = LT.getContents
+
+    getLine      = LT.getLine
+
+    putStr       = LT.putStr
+
+    putStrLn     = LT.putStrLn
+
+    readFile     = LT.readFile
+
+    writeFile    = LT.writeFile
+
+    appendFile   = LT.appendFile
 
 -- | Polymorphic container of a string
 --
diff --git a/string-class.cabal b/string-class.cabal
--- a/string-class.cabal
+++ b/string-class.cabal
@@ -1,25 +1,46 @@
 name:                  string-class
-version:               0.1.5.1
+version:               0.1.6.1
 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
+maintainer:            ByronJohnsonFP@gmail.com
 synopsis:              String class library
 description:           String class library
 category:              Data, Text
-tested-with:           GHC == 7.0.2
+tested-with:           GHC == 7.8.2
 
 library
-    default-language:  Haskell2010
-    hs-source-dirs:    src
-    build-depends:     base >= 4 && < 5, bytestring, text, tagged
-    exposed-modules:   Data.String.Class
-    ghc-options:       -Wall
-    other-extensions:  TypeFamilies, FlexibleContexts, TypeSynonymInstances, ExistentialQuantification, DeriveDataTypeable, FlexibleInstances, UndecidableInstances
+  default-language: Haskell2010
+  hs-source-dirs:   src
+  ghc-options:      -Wall
+  default-extensions:
+    --,GADTs
+    --,TemplateHaskell
+    DeriveDataTypeable
+  other-extensions:
+    TypeFamilies
+   ,FlexibleContexts
+   ,TypeSynonymInstances
+   ,ExistentialQuantification
+   ,DeriveDataTypeable
+   ,FlexibleInstances
+   ,UndecidableInstances
+  -- Haven't thoroughly checked version bounds.
+  -- I added as the minimum version for each non-base package the most recent
+  -- version as of this repository's initial commit.
+  build-depends:
+    base       >= 4        && < 5
+   -- bytestring's toStrict and fromString methods were first introduced in 0.10.0.0.
+   --,bytestring >= 0.9.1.8  && < 0.11
+   ,bytestring >= 0.10.0.0 && < 0.11
+   ,text       >= 0.11.0.1 && < 1.3
+   ,tagged     >= 0.1.1    && < 0.8
+  exposed-modules:
+    Data.String.Class
 
 source-repository head
-    type:              darcs
-    location:          http://patch-tag.com/r/bob/string-class
+  type:     git
+  location: git@github.com:bairyn/string-class.git
