| Copyright | © 2022-2023 IOHK 2023-2025 Cardano Foundation |
|---|---|
| License | Apache-2.0 |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Delta.Update
Contents
Description
Synopsis
- data Update da r
- runUpdate :: a ~ Base da => Update da r -> a -> (Maybe da, r)
- applyUpdate :: (Delta da, a ~ Base da) => Update da r -> a -> (a, r)
- onDBVar :: (Monad m, Delta da) => DBVar m da -> Update da r -> m r
- nop :: Update da ()
- update :: a ~ Base da => (a -> da) -> Update da ()
- updateWithResult :: a ~ Base da => (a -> (da, r)) -> Update da r
- updateWithError :: a ~ Base da => (a -> Either e da) -> Update da (Either e ())
- updateWithResultAndError :: a ~ Base da => (a -> Either e (da, r)) -> Update da (Either e r)
- updateMany :: Update da r -> Update [da] r
- updateField :: (a ~ Base da, b ~ Base db) => (b -> a) -> (da -> db) -> Update da r -> Update db r
Update
Type
View
Combinators
updateWithResult :: a ~ Base da => (a -> (da, r)) -> Update da r Source #
Compute a delta with result.
Helpers
updateWithError :: a ~ Base da => (a -> Either e da) -> Update da (Either e ()) Source #
Compute a delta or fail.
updateWithResultAndError :: a ~ Base da => (a -> Either e (da, r)) -> Update da (Either e r) Source #
Compute a delta with result or fail.
updateMany :: Update da r -> Update [da] r Source #
Lift an update for a single delta to a list of deltas.
Arguments
| :: (a ~ Base da, b ~ Base db) | |
| => (b -> a) | View field. |
| -> (da -> db) | Lift delta to |
| -> Update da r | |
| -> Update db r |
Helper function for lifting the Update from a
record field to the record.
Example:
data Pair a b = Pair a b
first :: Pair a b -> a
data DeltaPair da db
= UpdateFirst da
| UpdateSecond db
updateField first UpdateFirst
:: (a -> Update da r)
-> (Pair a b -> Update (DeltaPair da db) r)