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)