{-# LANGUAGE UnboxedTuples #-}
{-# OPTIONS_HADDOCK not-home #-}
module Data.Radix1Tree.Word8.Strict.Unsafe
( Radix1Tree (..)
, Prefix
, Key
, beyond
, upper
, lower
, Mask
, zeroBit
, mask
, branchingBit
, MalformedTree (..)
, Lookup1 (..)
, unsafeLookupMin
, unsafeLookupMinWithKey
, unsafeLookupMax
, unsafeLookupMaxWithKey
, unsafeAdjustMin
, unsafeAdjustMin'
, unsafeAdjustMinWithKey
, unsafeAdjustMinWithKey'
, unsafeAdjustMax
, unsafeAdjustMax'
, unsafeAdjustMaxWithKey
, unsafeAdjustMaxWithKey'
, unsafeDeleteMin
, unsafeDeleteMax
, unsafeUpdateMin
, unsafeUpdateMinWithKey
, unsafeUpdateMax
, unsafeUpdateMaxWithKey
, ViewL1 (..)
, unsafeMinView
, ViewR1 (..)
, unsafeMaxView
, merge
) where
import Data.RadixNTree.Word8.Key
import Data.RadixNTree.Word8.Common
import Data.RadixNTree.Word8.Strict
import Radix.Exception
import Radix.Word.Foundation
unsafeLookupMin :: Radix1Tree a -> (# a #)
unsafeLookupMin :: forall a. Radix1Tree a -> (# a #)
unsafeLookupMin = Radix1Tree a -> (# a #)
forall a. Radix1Tree a -> (# a #)
unsafeLookupMin1
unsafeLookupMinWithKey :: Radix1Tree a -> Lookup1 a
unsafeLookupMinWithKey :: forall a. Radix1Tree a -> Lookup1 a
unsafeLookupMinWithKey = Radix1Tree a -> Lookup1 a
forall a. Radix1Tree a -> Lookup1 a
unsafeLookupMinWithKey1
unsafeDeleteMin :: Radix1Tree a -> Radix1Tree a
unsafeDeleteMin :: forall a. Radix1Tree a -> Radix1Tree a
unsafeDeleteMin = Radix1Tree a -> Radix1Tree a
forall a. Radix1Tree a -> Radix1Tree a
unsafeDeleteMin1
unsafeAdjustMin :: (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin :: forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin = (a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin1
unsafeAdjustMinWithKey :: (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey :: forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey = (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey1
unsafeAdjustMin' :: (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin' :: forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin' = (a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMin1'
unsafeAdjustMinWithKey' :: (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey' :: forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey' = (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMinWithKey1'
unsafeUpdateMin :: (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMin :: forall a. (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMin = (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMin1
unsafeUpdateMinWithKey :: (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMinWithKey :: forall a. (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMinWithKey = (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMinWithKey1
unsafeMinView :: Radix1Tree a -> ViewL1 a
unsafeMinView :: forall a. Radix1Tree a -> ViewL1 a
unsafeMinView = Radix1Tree a -> ViewL1 a
forall a. Radix1Tree a -> ViewL1 a
unsafeMinView1
unsafeLookupMax :: Radix1Tree a -> (# a #)
unsafeLookupMax :: forall a. Radix1Tree a -> (# a #)
unsafeLookupMax = Radix1Tree a -> (# a #)
forall a. Radix1Tree a -> (# a #)
unsafeLookupMax1
unsafeLookupMaxWithKey :: Radix1Tree a -> Lookup1 a
unsafeLookupMaxWithKey :: forall a. Radix1Tree a -> Lookup1 a
unsafeLookupMaxWithKey = Radix1Tree a -> Lookup1 a
forall a. Radix1Tree a -> Lookup1 a
unsafeLookupMaxWithKey1
unsafeDeleteMax :: Radix1Tree a -> Radix1Tree a
unsafeDeleteMax :: forall a. Radix1Tree a -> Radix1Tree a
unsafeDeleteMax = Radix1Tree a -> Radix1Tree a
forall a. Radix1Tree a -> Radix1Tree a
unsafeDeleteMax1
unsafeAdjustMax :: (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax :: forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax = (a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax1
unsafeAdjustMaxWithKey :: (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey :: forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey = (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey1
unsafeAdjustMax' :: (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax' :: forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax' = (a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMax1'
unsafeAdjustMaxWithKey' :: (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey' :: forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey' = (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> a) -> Radix1Tree a -> Radix1Tree a
unsafeAdjustMaxWithKey1'
unsafeUpdateMax :: (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMax :: forall a. (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMax = (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
forall a. (a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMax1
unsafeUpdateMaxWithKey :: (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMaxWithKey :: forall a. (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMaxWithKey = (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
forall a. (Build1 -> a -> Maybe a) -> Radix1Tree a -> Radix1Tree a
unsafeUpdateMaxWithKey1
unsafeMaxView :: Radix1Tree a -> ViewR1 a
unsafeMaxView :: forall a. Radix1Tree a -> ViewR1 a
unsafeMaxView = Radix1Tree a -> ViewR1 a
forall a. Radix1Tree a -> ViewR1 a
unsafeMaxView1
{-# INLINE merge #-}
merge
:: (Build1 -> a -> b -> Maybe c)
-> (Build1 -> a -> Maybe c)
-> (Build -> Radix1Tree a -> Radix1Tree c)
-> (Build1 -> b -> Maybe c)
-> (Build -> Radix1Tree b -> Radix1Tree c)
-> Radix1Tree a
-> Radix1Tree b
-> Radix1Tree c
merge :: forall a b c.
(Build1 -> a -> b -> Maybe c)
-> (Build1 -> a -> Maybe c)
-> (Build -> Radix1Tree a -> Radix1Tree c)
-> (Build1 -> b -> Maybe c)
-> (Build -> Radix1Tree b -> Radix1Tree c)
-> Radix1Tree a
-> Radix1Tree b
-> Radix1Tree c
merge = (Build1 -> a -> b -> Maybe c)
-> (Build1 -> a -> Maybe c)
-> (Build -> Radix1Tree a -> Radix1Tree c)
-> (Build1 -> b -> Maybe c)
-> (Build -> Radix1Tree b -> Radix1Tree c)
-> Radix1Tree a
-> Radix1Tree b
-> Radix1Tree c
forall a b c.
(Build1 -> a -> b -> Maybe c)
-> (Build1 -> a -> Maybe c)
-> (Build -> Radix1Tree a -> Radix1Tree c)
-> (Build1 -> b -> Maybe c)
-> (Build -> Radix1Tree b -> Radix1Tree c)
-> Radix1Tree a
-> Radix1Tree b
-> Radix1Tree c
merge1