diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,8 @@
-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/freckle-memcached-v0.0.0.2...main)
+## [_Unreleased_](https://github.com/freckle/freckle-memcached/compare/v0.0.0.3...main)
+
+## [v0.0.0.3](https://github.com/freckle/freckle-memcached/compare/v0.0.0.2...v0.0.0.3)
+
+Metadata-only changes to update the package's source repository location.
 
 ## [v0.0.0.2](https://github.com/freckle/freckle-app/compare/freckle-memcached-v0.0.0.1...freckle-memcached-v0.0.0.2)
 
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2022-2024 Renaissance Learning Inc
+Copyright (c) 2025 Renaissance Learning Inc
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,1 +1,7 @@
 # freckle-memcached
+
+Some extensions to the [memcache](https://hackage.haskell.org/package/memcache) library.
+
+---
+
+[CHANGELOG](./CHANGELOG.md) | [LICENSE](./LICENSE)
diff --git a/freckle-memcached.cabal b/freckle-memcached.cabal
--- a/freckle-memcached.cabal
+++ b/freckle-memcached.cabal
@@ -1,12 +1,12 @@
 cabal-version:      1.18
 name:               freckle-memcached
-version:            0.0.0.2
+version:            0.0.0.3
 license:            MIT
 license-file:       LICENSE
 maintainer:         Freckle Education
-homepage:           https://github.com/freckle/freckle-app#readme
-bug-reports:        https://github.com/freckle/freckle-app/issues
-synopsis:           ..
+homepage:           https://github.com/freckle/freckle-memcached#readme
+bug-reports:        https://github.com/freckle/freckle-memcached/issues
+synopsis:           Some extensions to the memcache library
 description:        Please see README.md
 category:           Database
 build-type:         Simple
@@ -17,7 +17,7 @@
 
 source-repository head
     type:     git
-    location: https://github.com/freckle/freckle-app
+    location: https://github.com/freckle/freckle-memcached
 
 library
     exposed-modules:
@@ -98,11 +98,11 @@
         base >=4.16.4.0 && <5,
         errors >=2.3.0,
         exceptions >=0.10.4,
-        freckle-env >=0.0.1.1,
+        freckle-env >=0.0.1.2,
         freckle-memcached,
         hs-opentelemetry-sdk >=0.0.3.6,
-        hspec >=2.10.10,
-        hspec-core >=2.10.10,
+        hspec >=2.9.7,
+        hspec-core >=2.9.7,
         hspec-expectations-lifted >=0.10.0,
         lens >=5.1.1,
         lens-aeson >=1.2.2,
diff --git a/library/Freckle/App/Memcached.hs b/library/Freckle/App/Memcached.hs
--- a/library/Freckle/App/Memcached.hs
+++ b/library/Freckle/App/Memcached.hs
@@ -78,10 +78,11 @@
     CacheDeserializeError err -> "Unable to deserialize: " <> err
 
 -- | Log any thrown 'CachingError's as warnings and return the given value
-warnOnCachingError :: (MonadUnliftIO m, MonadLogger m) => a -> m a -> m a
+warnOnCachingError
+  :: forall m a. (MonadLogger m, MonadUnliftIO m) => a -> m a -> m a
 warnOnCachingError val =
-  flip catch $
-    (val <$)
+  flip catch
+    $ (val <$)
       . logWarnNS "caching"
       . annotatedExceptionMessage @CachingError
 
@@ -103,13 +104,14 @@
 
 -- | Memoize an action using Memcached and 'Cachable'
 caching
-  :: ( MonadUnliftIO m
+  :: forall m env a
+   . ( Cachable a
+     , HasCallStack
+     , HasMemcachedClient env
      , MonadLogger m
-     , MonadTracer m
      , MonadReader env m
-     , HasMemcachedClient env
-     , Cachable a
-     , HasCallStack
+     , MonadTracer m
+     , MonadUnliftIO m
      )
   => CacheKey
   -> CacheTTL
@@ -119,12 +121,13 @@
 
 -- | Like 'caching', but with explicit conversion functions
 cachingAs
-  :: ( MonadUnliftIO m
+  :: forall m env a
+   . ( HasCallStack
+     , HasMemcachedClient env
      , MonadLogger m
-     , MonadTracer m
      , MonadReader env m
-     , HasMemcachedClient env
-     , HasCallStack
+     , MonadTracer m
+     , MonadUnliftIO m
      )
   => (ByteString -> Either String a)
   -> (a -> ByteString)
@@ -147,14 +150,15 @@
 
 -- | Like 'caching', but de/serializing the value as JSON
 cachingAsJSON
-  :: ( MonadUnliftIO m
+  :: forall m env a
+   . ( FromJSON a
+     , HasCallStack
+     , HasMemcachedClient env
      , MonadLogger m
-     , MonadTracer m
      , MonadReader env m
-     , HasMemcachedClient env
-     , FromJSON a
+     , MonadTracer m
+     , MonadUnliftIO m
      , ToJSON a
-     , HasCallStack
      )
   => CacheKey
   -> CacheTTL
@@ -164,13 +168,14 @@
 
 -- | Cache data in memcached in CBOR format
 cachingAsCBOR
-  :: ( MonadUnliftIO m
+  :: forall m env a
+   . ( HasCallStack
+     , HasMemcachedClient env
      , MonadLogger m
-     , MonadTracer m
      , MonadReader env m
-     , HasMemcachedClient env
+     , MonadTracer m
+     , MonadUnliftIO m
      , Serialise a
-     , HasCallStack
      )
   => CacheKey
   -> CacheTTL
diff --git a/library/Freckle/App/Memcached/CacheKey.hs b/library/Freckle/App/Memcached/CacheKey.hs
--- a/library/Freckle/App/Memcached/CacheKey.hs
+++ b/library/Freckle/App/Memcached/CacheKey.hs
@@ -48,7 +48,7 @@
     Left $ "Not a valid memcached key:\n  " <> T.unpack t <> "\n\n" <> msg
 
 -- | Build a 'CacheKey' and throw if invalid
-cacheKeyThrow :: (MonadIO m, HasCallStack) => Text -> m CacheKey
+cacheKeyThrow :: (HasCallStack, MonadIO m) => Text -> m CacheKey
 cacheKeyThrow = either (throwWithCallStack . userError) pure . cacheKey
 
 fromCacheKey :: CacheKey -> Key
diff --git a/library/Freckle/App/Memcached/CacheTTL.hs b/library/Freckle/App/Memcached/CacheTTL.hs
--- a/library/Freckle/App/Memcached/CacheTTL.hs
+++ b/library/Freckle/App/Memcached/CacheTTL.hs
@@ -14,7 +14,7 @@
 
 newtype CacheTTL = CacheTTL Int
   deriving stock (Show)
-  deriving newtype (Eq, Ord, Enum, Num, Real, Integral, Serialise)
+  deriving newtype (Enum, Eq, Integral, Num, Ord, Real, Serialise)
 
 instance ToAttribute CacheTTL where
   toAttribute (CacheTTL x) = toAttribute x
diff --git a/library/Freckle/App/Memcached/Client.hs b/library/Freckle/App/Memcached/Client.hs
--- a/library/Freckle/App/Memcached/Client.hs
+++ b/library/Freckle/App/Memcached/Client.hs
@@ -53,7 +53,8 @@
 memcachedClientDisabled = MemcachedClientDisabled
 
 get
-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)
+  :: forall m env
+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)
   => CacheKey
   -> m (Maybe Value)
 get k = traced $ with $ \case
@@ -76,18 +77,19 @@
 --
 -- Pass @0@ to set a value that never expires.
 set
-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)
+  :: forall m env
+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)
   => CacheKey
   -> Value
   -> CacheTTL
   -> m ()
 set k v expiration = traced $ with $ \case
   MemcachedClient mc ->
-    void $
-      liftIO $
-        Memcache.set mc (fromCacheKey k) v 0 $
-          fromCacheTTL
-            expiration
+    void
+      $ liftIO
+      $ Memcache.set mc (fromCacheKey k) v 0
+      $ fromCacheTTL
+        expiration
   MemcachedClientDisabled -> pure ()
  where
   traced =
@@ -106,7 +108,8 @@
 
 -- | Delete a key
 delete
-  :: (MonadUnliftIO m, MonadTracer m, MonadReader env m, HasMemcachedClient env)
+  :: forall m env
+   . (HasMemcachedClient env, MonadReader env m, MonadTracer m, MonadUnliftIO m)
   => CacheKey
   -> m ()
 delete k = traced $ with $ \case
@@ -127,7 +130,8 @@
   MemcachedClientDisabled -> pure ()
 
 with
-  :: (MonadReader env m, HasMemcachedClient env)
+  :: forall env m a
+   . (HasMemcachedClient env, MonadReader env m)
   => (MemcachedClient -> m a)
   -> m a
 with f = do
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,9 +1,9 @@
 name: freckle-memcached
-version: 0.0.0.2
+version: 0.0.0.3
 maintainer: Freckle Education
 category: Database
-github: freckle/freckle-app
-synopsis: ..
+github: freckle/freckle-memcached
+synopsis: Some extensions to the memcache library
 description: Please see README.md
 
 extra-doc-files:
diff --git a/tests/AppExample.hs b/tests/AppExample.hs
--- a/tests/AppExample.hs
+++ b/tests/AppExample.hs
@@ -31,11 +31,11 @@
     , Functor
     , Monad
     , MonadCatch
+    , MonadFail
     , MonadIO
-    , MonadUnliftIO
     , MonadReader app
     , MonadThrow
-    , MonadFail
+    , MonadUnliftIO
     )
   deriving
     (MonadLogger, MonadLoggerIO)
diff --git a/tests/Freckle/App/MemcachedSpec.hs b/tests/Freckle/App/MemcachedSpec.hs
--- a/tests/Freckle/App/MemcachedSpec.hs
+++ b/tests/Freckle/App/MemcachedSpec.hs
@@ -74,8 +74,8 @@
 loadApp :: (App -> IO a) -> IO a
 loadApp f = do
   servers <-
-    Env.parse id $
-      Env.var
+    Env.parse id
+      $ Env.var
         (Env.eitherReader readMemcachedServers)
         "MEMCACHED_SERVERS"
         (Env.def defaultMemcachedServers)
