From 1ea0603ac37807536507e51affbc70755f21c07f Mon Sep 17 00:00:00 2001 From: Jack Kelly Date: Fri, 16 Jun 2023 16:32:25 +1000 Subject: [PATCH] Hedgehog.Internal.State: Add instance Applicative Concrete --- CHANGELOG.md | 3 +++ hedgehog/src/Hedgehog/Internal/State.hs | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54d7d9da..8fc631ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## Version 1.2.1 (unreleased) +* Add `instance Applicative Concrete` ([#493][493], [@endgame][endgame]) * Export `Hedgehog.Internal.Seed.seed` ([#477][477], [@sol][sol]) ## Version 1.2 (2022-08-28) @@ -271,6 +272,8 @@ https://github.com/jhrcek +[493]: + https://github.com/hedgehogqa/haskell-hedgehog/pull/493 [462]: https://github.com/hedgehogqa/haskell-hedgehog/pull/462 [461]: diff --git a/hedgehog/src/Hedgehog/Internal/State.hs b/hedgehog/src/Hedgehog/Internal/State.hs index 5471ca44..0e7f31df 100644 --- a/hedgehog/src/Hedgehog/Internal/State.hs +++ b/hedgehog/src/Hedgehog/Internal/State.hs @@ -135,6 +135,11 @@ newtype Concrete a where Concrete :: a -> Concrete a deriving (Eq, Ord, Functor, Foldable, Traversable) +-- | @since 1.2.1 +instance Applicative Concrete where + pure = Concrete + Concrete f <*> Concrete x = Concrete $ f x + instance Show a => Show (Concrete a) where showsPrec = showsPrec1