pred-trie-0.6.0.1: Predicative tries

Copyright(c) 2015 Athan Clark
LicenseBSD-3
Maintainerathan.clark@gmail.com
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Data.Trie.Pred.Base.Step

Contents

Description

 

Synopsis

Single Predicated Step

data Pred c s a Source #

Constructors

Typeable r => Pred 

Fields

  • predPred :: !(s -> Maybe r)

    The predicate, existentially quantified in the successful result r

  • predData :: !(Maybe (r -> a))

    The result function, capturing the quantified result r and turning it into a top-level variable a.

  • predSub :: c s (r -> a)

    Any sub-trie must have all results preceeded in arity with the result at this step.

Instances

Trie NonEmpty s c => Trie NonEmpty s (Pred c) Source #

Lookup and delete only - can't arbitrarilly construct a predicated trie.

Methods

lookup :: NonEmpty s -> Pred c s a -> Maybe a #

insert :: NonEmpty s -> a -> Pred c s a -> Pred c s a #

delete :: NonEmpty s -> Pred c s a -> Pred c s a #

Functor (c s) => Functor (Pred c s) Source # 

Methods

fmap :: (a -> b) -> Pred c s a -> Pred c s b #

(<$) :: a -> Pred c s b -> Pred c s a #

Show (Pred c s a) Source # 

Methods

showsPrec :: Int -> Pred c s a -> ShowS #

show :: Pred c s a -> String #

showList :: [Pred c s a] -> ShowS #

(Functor (c s), NFData (c s (s -> Maybe a))) => NFData (Pred c s a) Source # 

Methods

rnf :: Pred c s a -> () #

singletonPred :: (Monoid (c s (r -> a)), Typeable r) => (s -> Maybe r) -> (r -> a) -> Pred c s a Source #

Adjacent Predicated Steps

newtype PredStep k c s a Source #

Adjacent steps

Constructors

PredStep 

Fields

Instances

Trie NonEmpty s c => Trie NonEmpty s (PredStep k c) Source #

Lookup and delete only - can't arbitrarilly construct a predicated trie.

Methods

lookup :: NonEmpty s -> PredStep k c s a -> Maybe a #

insert :: NonEmpty s -> a -> PredStep k c s a -> PredStep k c s a #

delete :: NonEmpty s -> PredStep k c s a -> PredStep k c s a #

Functor (c s) => Functor (PredStep k c s) Source # 

Methods

fmap :: (a -> b) -> PredStep k c s a -> PredStep k c s b #

(<$) :: a -> PredStep k c s b -> PredStep k c s a #

Show k => Show (PredStep k c s a) Source # 

Methods

showsPrec :: Int -> PredStep k c s a -> ShowS #

show :: PredStep k c s a -> String #

showList :: [PredStep k c s a] -> ShowS #

(Eq k, Hashable k) => Monoid (PredStep k c s a) Source # 

Methods

mempty :: PredStep k c s a #

mappend :: PredStep k c s a -> PredStep k c s a -> PredStep k c s a #

mconcat :: [PredStep k c s a] -> PredStep k c s a #

(Functor (c s), NFData (c s (s -> Maybe a)), NFData k) => NFData (PredStep k c s a) Source # 

Methods

rnf :: PredStep k c s a -> () #

unionPred :: (Eq k, Hashable k) => PredStep k c s a -> PredStep k c s a -> PredStep k c s a Source #

overwrite on the right