- data Shell a
- shell :: a -> [Shell a] -> Shell a
- (<<|) :: Eq a => Shell a -> Shell a -> Bool
- couple :: Eq a => Shell a -> Shell a -> Bool
- dive :: Eq a => Shell a -> Shell a -> Bool
- data Homeomorphic k v
- empty :: Homeomorphic k v
- insert :: Ord k => Shell k -> v -> Homeomorphic k v -> Homeomorphic k v
- find :: Ord k => Shell k -> Homeomorphic k v -> [v]
- findOne :: Ord k => Shell k -> Homeomorphic k v -> Maybe v
Documentation
The central data type. All data structures must be converted so they
consist of Shell
's, which split a value into a component at this
level and the children. Create a Shell
with shell
.
shell :: a -> [Shell a] -> Shell aSource
Create a value with a component at the current level and all the children.
data Homeomorphic k v Source
Datatype to store a homemorphic embedding.
empty :: Homeomorphic k vSource
An empty embedding
insert :: Ord k => Shell k -> v -> Homeomorphic k v -> Homeomorphic k vSource
Insert a new key (coded as a shell) and an associated value into an embedding.
find :: Ord k => Shell k -> Homeomorphic k v -> [v]Source
Does any relation xs <| y hold, given y.