Safe Haskell | None |
---|---|
Language | GHC2021 |
Test.Credit.Finger
Documentation
Instances
MemoryCell m a => MemoryCell m (Digit a) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: Digit a -> m Memory Source # | |
Show a => Show (Digit a) Source # | |
Eq a => Eq (Digit a) Source # | |
Ord a => Ord (Digit a) Source # | |
Measured a v => Measured (Digit a) v Source # | |
Defined in Test.Credit.Finger |
Instances
MemoryCell m a => MemoryCell m (Tuple v a) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: Tuple v a -> m Memory Source # | |
(Show v, Show a) => Show (Tuple v a) Source # | |
(Eq v, Eq a) => Eq (Tuple v a) Source # | |
(Ord v, Ord a) => Ord (Tuple v a) Source # | |
Monoid v => Measured (Tuple v a) v Source # | |
Defined in Test.Credit.Finger |
data FingerTree v a (m :: Type -> Type) Source #
Constructors
Empty | |
Single a | |
Deep (Thunk m (Lazy m) v) (Digit a) (Thunk m (FLazyCon m) (FingerTree v (Tuple v a) m)) (Digit a) |
Instances
(MonadMemory m, MemoryCell m a) => MemoryCell m (FingerTree v a m) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FingerTree v a m -> m Memory Source # | |
Pretty a => MemoryStructure (FingerTree v (PrettyCell a)) Source # | |
Defined in Test.Credit.Finger Methods prettyStructure :: MonadMemory m => FingerTree v (PrettyCell a) m -> m Memory Source # |
data FLazyCon (m :: Type -> Type) a where Source #
Constructors
FPure :: forall a (m :: Type -> Type). a -> FLazyCon m a | |
FCons :: forall a1 v (m :: Type -> Type). Measured a1 v => a1 -> Thunk m (FLazyCon m) (FingerTree v a1 m) -> FLazyCon m (FingerTree v a1 m) | |
FSnoc :: forall a1 v (m :: Type -> Type). Measured a1 v => Thunk m (FLazyCon m) (FingerTree v a1 m) -> a1 -> FLazyCon m (FingerTree v a1 m) | |
FTail :: forall a1 v (m :: Type -> Type). Measured a1 v => FingerTree v a1 m -> FLazyCon m (FingerTree v a1 m) | |
FInit :: forall a1 v (m :: Type -> Type). Measured a1 v => FingerTree v a1 m -> FLazyCon m (FingerTree v a1 m) |
Instances
MonadCredit m => HasStep (FLazyCon m :: Type -> Type) (m :: Type -> Type) Source # | |
Defined in Test.Credit.Finger | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (FLazyCon m a) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FLazyCon m a -> m Memory Source # |
class Monoid v => Measured a v where Source #
Instances
Measured a v => Measured (Digit a) v Source # | |
Defined in Test.Credit.Finger | |
Measured (Elem a) Size Source # | |
Measured (Elem a) () Source # | |
Defined in Test.Credit.Finger | |
Measured a v => Measured [a] v Source # | |
Defined in Test.Credit.Finger | |
Measured (Elem a) (Key a) Source # | |
Ord a => Measured (Elem a) (Prio a) Source # | |
Monoid v => Measured (Tuple v a) v Source # | |
Defined in Test.Credit.Finger |
measurement :: (MonadCredit m, Measured a v) => FingerTree v a m -> m v Source #
forceAll :: (MonadCredit m, Measured a v) => FingerTree v a m -> m () Source #
empty :: MonadCredit m => m (Thunk m (FLazyCon m) (FingerTree v a m)) Source #
deep :: (MonadCredit m, Measured a v) => Thunk m (Lazy m) v -> Digit a -> Thunk m (FLazyCon m) (FingerTree v (Tuple v a) m) -> Digit a -> m (FingerTree v a m) Source #
deep' :: (MonadCredit m, Measured a v) => Digit a -> m (Thunk m (FLazyCon m) (FingerTree v (Tuple v a) m)) -> Digit a -> m (FingerTree v a m) Source #
toTree :: (MonadCredit m, Measured a v) => [a] -> m (FingerTree v a m) Source #
cons :: (MonadCredit m, Measured a v) => a -> FingerTree v a m -> m (FingerTree v a m) Source #
cons' :: (MonadCredit m, Measured a v) => a -> FingerTree v a m -> m (FingerTree v a m) Source #
head :: MonadCredit m => FingerTree v a m -> m a Source #
tail :: (MonadCredit m, Measured a v) => FingerTree v a m -> m (FingerTree v a m) Source #
deep0 :: (MonadCredit m, Measured a v) => FingerTree v (Tuple v a) m -> Digit a -> m (FingerTree v a m) Source #
map1 :: (MonadCredit m, Measured a v) => (a -> a) -> FingerTree v a m -> m (FingerTree v a m) Source #
uncons :: (MonadCredit m, Measured a v) => FingerTree v a m -> m (Maybe (a, FingerTree v a m)) Source #
deepL :: (MonadCredit m, Measured a v) => [a] -> Thunk m (Lazy m) v -> Thunk m (FLazyCon m) (FingerTree v (Tuple v a) m) -> Digit a -> m (FingerTree v a m) Source #
last :: (MonadCredit m, Measured a v) => FingerTree v a m -> m a Source #
snoc :: (MonadCredit m, Measured a v) => FingerTree v a m -> a -> m (FingerTree v a m) Source #
snoc' :: (MonadCredit m, Measured a v) => FingerTree v a m -> a -> m (FingerTree v a m) Source #
init :: (MonadCredit m, Measured a v) => FingerTree v a m -> m (FingerTree v a m) Source #
deepN :: (MonadCredit m, Measured a v) => Digit a -> FingerTree v (Tuple v a) m -> m (FingerTree v a m) Source #
mapN :: (MonadCredit m, Measured a v) => (a -> a) -> FingerTree v a m -> m (FingerTree v a m) Source #
unsnoc :: (MonadCredit m, Measured a v) => FingerTree v a m -> m (Maybe (FingerTree v a m, a)) Source #
deepR :: (MonadCredit m, Measured a v) => Digit a -> Thunk m (Lazy m) v -> Thunk m (FLazyCon m) (FingerTree v (Tuple v a) m) -> [a] -> m (FingerTree v a m) Source #
glue :: (MonadCredit m, Measured a v) => FingerTree v a m -> [a] -> FingerTree v a m -> m (FingerTree v a m) Source #
concat' :: (MonadCredit m, Measured a v) => FingerTree v a m -> FingerTree v a m -> m (FingerTree v a m) Source #
data Split v a (m :: Type -> Type) Source #
Constructors
Split | |
Fields
|
splitTree :: (MonadCredit m, Measured a v) => (v -> Bool) -> v -> FingerTree v a m -> m (Split v a m) Source #
split :: (MonadCredit m, Measured a v) => (v -> Bool) -> FingerTree v a m -> m (FingerTree v a m, FingerTree v a m) Source #
takeUntil :: (MonadCredit m, Measured a v) => (v -> Bool) -> FingerTree v a m -> m (FingerTree v a m) Source #
dropUntil :: (MonadCredit m, Measured a v) => (v -> Bool) -> FingerTree v a m -> m (FingerTree v a m) Source #
lookupTree :: (MonadCredit m, Measured a v) => (v -> Bool) -> v -> FingerTree v a m -> m (Maybe (v, a)) Source #
Constructors
Elem a |
Instances
MemoryCell m a => MemoryCell m (Elem a) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: Elem a -> m Memory Source # | |
Show a => Show (Elem a) Source # | |
Eq a => Eq (Elem a) Source # | |
Ord a => Ord (Elem a) Source # | |
Measured (Elem a) Size Source # | |
Measured (Elem a) () Source # | |
Defined in Test.Credit.Finger | |
Measured (Elem a) (Key a) Source # | |
Ord a => Measured (Elem a) (Prio a) Source # | |
newtype FingerDeque a (m :: Type -> Type) Source #
Constructors
FingerDeque (FingerTree () (Elem a) m) |
Instances
BoundedDeque FingerDeque Source # | |
Deque FingerDeque Source # | |
Defined in Test.Credit.Finger Methods empty :: MonadInherit m => m (FingerDeque a m) Source # cons :: MonadInherit m => a -> FingerDeque a m -> m (FingerDeque a m) Source # snoc :: MonadInherit m => FingerDeque a m -> a -> m (FingerDeque a m) Source # uncons :: MonadInherit m => FingerDeque a m -> m (Maybe (a, FingerDeque a m)) Source # unsnoc :: MonadInherit m => FingerDeque a m -> m (Maybe (FingerDeque a m, a)) Source # concat :: MonadInherit m => FingerDeque a m -> FingerDeque a m -> m (FingerDeque a m) Source # | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (FingerDeque a m) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FingerDeque a m -> m Memory Source # | |
Pretty a => MemoryStructure (FingerDeque (PrettyCell a)) Source # | |
Defined in Test.Credit.Finger Methods prettyStructure :: MonadMemory m => FingerDeque (PrettyCell a) m -> m Memory Source # |
newtype FingerRA a (m :: Type -> Type) Source #
Constructors
FingerRA (FingerTree Size (Elem a) m) |
Instances
BoundedRandomAccess FingerRA Source # | |
Defined in Test.Credit.Finger | |
RandomAccess FingerRA Source # | |
Defined in Test.Credit.Finger Methods empty :: MonadCredit m => m (FingerRA a m) Source # cons :: MonadCredit m => a -> FingerRA a m -> m (FingerRA a m) Source # uncons :: MonadCredit m => FingerRA a m -> m (Maybe (a, FingerRA a m)) Source # lookup :: MonadCredit m => Int -> FingerRA a m -> m (Maybe a) Source # update :: MonadCredit m => Int -> a -> FingerRA a m -> m (FingerRA a m) Source # | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (FingerRA a m) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FingerRA a m -> m Memory Source # | |
Pretty a => MemoryStructure (FingerRA (PrettyCell a)) Source # | |
Defined in Test.Credit.Finger Methods prettyStructure :: MonadMemory m => FingerRA (PrettyCell a) m -> m Memory Source # |
newtype FingerHeap a (m :: Type -> Type) Source #
Constructors
FingerHeap (FingerTree (Prio a) (Elem a) m) |
Instances
BoundedHeap FingerHeap Source # | |
Heap FingerHeap Source # | |
Defined in Test.Credit.Finger Methods empty :: MonadCredit m => m (FingerHeap a m) Source # insert :: (MonadCredit m, Ord a) => a -> FingerHeap a m -> m (FingerHeap a m) Source # merge :: (MonadCredit m, Ord a) => FingerHeap a m -> FingerHeap a m -> m (FingerHeap a m) Source # splitMin :: (MonadCredit m, Ord a) => FingerHeap a m -> m (Maybe (a, FingerHeap a m)) Source # | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (FingerHeap a m) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FingerHeap a m -> m Memory Source # | |
Pretty a => MemoryStructure (FingerHeap (PrettyCell a)) Source # | |
Defined in Test.Credit.Finger Methods prettyStructure :: MonadMemory m => FingerHeap (PrettyCell a) m -> m Memory Source # |
newtype FingerSort a (m :: Type -> Type) Source #
Constructors
FingerSort (FingerTree (Key a) (Elem a) m) |
Instances
BoundedSortable FingerSort Source # | |
Defined in Test.Credit.Finger | |
Sortable FingerSort Source # | |
Defined in Test.Credit.Finger Methods empty :: MonadCredit m => m (FingerSort a m) Source # add :: (MonadCredit m, Ord a) => a -> FingerSort a m -> m (FingerSort a m) Source # sort :: (MonadCredit m, Ord a) => FingerSort a m -> m [a] Source # | |
(MonadMemory m, MemoryCell m a) => MemoryCell m (FingerSort a m) Source # | |
Defined in Test.Credit.Finger Methods prettyCell :: FingerSort a m -> m Memory Source # | |
Pretty a => MemoryStructure (FingerSort (PrettyCell a)) Source # | |
Defined in Test.Credit.Finger Methods prettyStructure :: MonadMemory m => FingerSort (PrettyCell a) m -> m Memory Source # |
rev :: MonadCredit m => [a] -> [a] -> m [a] Source #
append :: MonadCredit m => [a] -> [a] -> m [a] Source #
treeToList :: MonadCredit m => [b] -> (a -> m [b]) -> FingerTree v a m -> m [b] Source #