diff options
| author | Mistivia <i@mistivia.com> | 2025-05-23 12:09:41 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-05-23 12:09:41 +0800 |
| commit | ff41a2a1b251e15aa613f3428906a1fc34e34e66 (patch) | |
| tree | aece9e1698de252cb0417ae32b15e7d3eb615796 /src | |
| parent | f52f1356b74adb4fa0b57f63d4944ebb442810f9 (diff) | |
fix composability bug
Diffstat (limited to 'src')
| -rw-r--r-- | src/Accessor.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Accessor.hs b/src/Accessor.hs index a1623fc..ace78eb 100644 --- a/src/Accessor.hs +++ b/src/Accessor.hs @@ -15,7 +15,7 @@ module Accessor ) where -type Accessor s a r = (a -> a) -> s -> (s, r) +type Accessor s w r = (w -> w) -> s -> (s, r) accessor :: (s -> a) -> (a -> s -> s) -> Accessor s a a accessor getter setter f x = (setter newVal x, getter x) where @@ -33,7 +33,7 @@ set acc x = over acc (const x) infixr # (#) :: - Accessor obj middle middle -> Accessor middle end end -> Accessor obj end end + Accessor s1 a1 a1 -> Accessor a1 w2 r -> Accessor s1 w2 r (#) = composeAccessors where composeAccessors ac1 ac2 modifier obj = (newObj, value) @@ -92,3 +92,4 @@ sndAcc :: Accessor (a, b) b b sndAcc = accessor getter setter where getter (_, b) = b setter n x = (fst x, n) + |
