Change prerender return to expose initial value #447
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As is, this is a breaking change. Migration strategy is pretty much to add a
uncurry holdDyn
in front ofprerender
.A non-breaking alternative is to add a separate function, say,
prerender'
, though that makes more work for the implementation:prerender a b = uncurry holdDyn =<< prerender' a b
, but that would add theMonadHold
constraint to all the implementations that don't supply their ownprerender
, which might be its own breaking change. For instance, these two instances would now require extra constraints on the function that tries to use theminstance (SupportsStaticDomBuilder t m) => Prerender t (StaticDomBuilderT t m) where
instance (Prerender t m, Monad m) => Prerender t (ReaderT r m) where
but the lack of let bindings in classes makes this very awkward.
I'm not sure the pain to make this non-breaking is worth it especially given we'd then end with 3 very similar functions:
prerender
prerender_
prerender'