From 4f31305f6ce8c3f4efae83b8a40d95b28e384aa3 Mon Sep 17 00:00:00 2001 From: Chris Martin Date: Fri, 17 May 2024 16:03:33 -0600 Subject: [PATCH] add instance Traversable UrlMap' --- wai-extra/ChangeLog.md | 4 ++++ wai-extra/Network/Wai/UrlMap.hs | 8 ++++++++ wai-extra/wai-extra.cabal | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/wai-extra/ChangeLog.md b/wai-extra/ChangeLog.md index 9969cd1a0..14d09713c 100644 --- a/wai-extra/ChangeLog.md +++ b/wai-extra/ChangeLog.md @@ -1,5 +1,9 @@ # Changelog for wai-extra +## 3.1.16 + +* Added instances `Foldable` and `Traversable` for `UrlMap'` [#992](https://github.com/yesodweb/wai/pull/992) + ## 3.1.15 * Added `validateHeadersMiddleware` for validating response headers set by the application [#990](https://github.com/yesodweb/wai/pull/990). diff --git a/wai-extra/Network/Wai/UrlMap.hs b/wai-extra/Network/Wai/UrlMap.hs index 96cc54f25..7fc95feea 100644 --- a/wai-extra/Network/Wai/UrlMap.hs +++ b/wai-extra/Network/Wai/UrlMap.hs @@ -52,6 +52,14 @@ instance Alternative UrlMap' where empty = UrlMap' empty (UrlMap' xs) <|> (UrlMap' ys) = UrlMap' (xs <|> ys) +-- | @since 3.1.16 +instance Foldable UrlMap' where + foldr f z (UrlMap' xs) = foldr (f . snd) z xs + +-- | @since 3.1.16 +instance Traversable UrlMap' where + traverse f (UrlMap' xs) = UrlMap' <$> traverse (traverse f) xs + type UrlMap = UrlMap' Application -- | Mount an application under a given path. The ToApplication typeclass gives diff --git a/wai-extra/wai-extra.cabal b/wai-extra/wai-extra.cabal index b8f8d76cd..c0221ca5d 100644 --- a/wai-extra/wai-extra.cabal +++ b/wai-extra/wai-extra.cabal @@ -1,5 +1,5 @@ Name: wai-extra -Version: 3.1.15 +Version: 3.1.16 Synopsis: Provides some basic WAI handlers and middleware. description: Provides basic WAI handler and middleware functionality: