{-# LANGUAGE PatternSynonyms #-} module Cursor.Simple.Map.KeyValue ( KeyValueCursor, pattern KVC.KeyValueCursorKey, pattern KVC.KeyValueCursorValue, KVC.makeKeyValueCursorKey, KVC.makeKeyValueCursorValue, rebuildKeyValueCursor, KVC.keyValueCursorSelection, mapKeyValueCursor, keyValueCursorSelectKey, keyValueCursorSelectValue, keyValueCursorToggleSelected, KVC.KeyValueToggle (..), ) where import qualified Cursor.Map.KeyValue as KVC type KeyValueCursor k v = KVC.KeyValueCursor k v k v rebuildKeyValueCursor :: KeyValueCursor k v -> (k, v) rebuildKeyValueCursor :: KeyValueCursor k v -> (k, v) rebuildKeyValueCursor = (k -> k) -> (v -> v) -> KeyValueCursor k v -> (k, v) forall kc k vc v. (kc -> k) -> (vc -> v) -> KeyValueCursor kc vc k v -> (k, v) KVC.rebuildKeyValueCursor k -> k forall a. a -> a id v -> v forall a. a -> a id mapKeyValueCursor :: (k -> l) -> (v -> w) -> KeyValueCursor k v -> KeyValueCursor l w mapKeyValueCursor :: (k -> l) -> (v -> w) -> KeyValueCursor k v -> KeyValueCursor l w mapKeyValueCursor k -> l f v -> w g = (k -> l) -> (v -> w) -> (k -> l) -> (v -> w) -> KeyValueCursor k v -> KeyValueCursor l w forall kc lc vc wc k l v w. (kc -> lc) -> (vc -> wc) -> (k -> l) -> (v -> w) -> KeyValueCursor kc vc k v -> KeyValueCursor lc wc l w KVC.mapKeyValueCursor k -> l f v -> w g k -> l f v -> w g keyValueCursorSelectKey :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorSelectKey :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorSelectKey = (k -> k) -> (v -> v) -> KeyValueCursor k v -> KeyValueCursor k v forall k kc vc v. (k -> kc) -> (vc -> v) -> KeyValueCursor kc vc k v -> KeyValueCursor kc vc k v KVC.keyValueCursorSelectKey k -> k forall a. a -> a id v -> v forall a. a -> a id keyValueCursorSelectValue :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorSelectValue :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorSelectValue = (k -> k) -> (v -> v) -> KeyValueCursor k v -> KeyValueCursor k v forall kc k v vc. (kc -> k) -> (v -> vc) -> KeyValueCursor kc vc k v -> KeyValueCursor kc vc k v KVC.keyValueCursorSelectValue k -> k forall a. a -> a id v -> v forall a. a -> a id keyValueCursorToggleSelected :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorToggleSelected :: KeyValueCursor k v -> KeyValueCursor k v keyValueCursorToggleSelected = (k -> k) -> (k -> k) -> (v -> v) -> (v -> v) -> KeyValueCursor k v -> KeyValueCursor k v forall kc k vc v. (kc -> k) -> (k -> kc) -> (vc -> v) -> (v -> vc) -> KeyValueCursor kc vc k v -> KeyValueCursor kc vc k v KVC.keyValueCursorToggleSelected k -> k forall a. a -> a id k -> k forall a. a -> a id v -> v forall a. a -> a id v -> v forall a. a -> a id