MO.Util
- on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
- traceShow :: Show a => a -> b -> b
- traceM :: Monad m => String -> m ()
- (?==?) :: (Eq a, Typeable a, Typeable b) => a -> b -> Bool
- (?<=>?) :: (Ord a, Typeable a, Typeable b) => a -> b -> Ordering
- addressOf :: a -> Word
- data Ord a => Collection a = MkCollection {}
- cmap :: (Ord a, Ord b) => (a -> b) -> Collection a -> Collection b
- remove :: (Monad m, Ord a) => Atom -> a -> Collection a -> m (Collection a)
- add :: (Monad m, Ord a) => Atom -> a -> Collection a -> m (Collection a)
- insert :: Ord a => Atom -> a -> Collection a -> Collection a
- emptyCollection :: Ord a => Collection a
- newCollection :: Ord a => [(Atom, a)] -> Collection a
- newCollection' :: Ord a => (a -> Atom) -> [a] -> Collection a
- newCollectionMap :: Ord a => AtomMap a -> Collection a
- items :: Ord a => Collection a -> [a]
- items_named :: Ord a => Collection a -> [(Atom, a)]
- includes :: Ord a => Collection a -> a -> Bool
- includes_name :: Ord a => Collection a -> Atom -> Bool
- includes_any :: Ord a => Collection a -> [a] -> Bool
- includes_any_name :: Ord a => Collection a -> [Atom] -> Bool
- includes_all :: Ord a => Collection a -> [a] -> Bool
- shadow :: Ord a => [Collection a] -> [a]
- shadow' :: Ord a => [Collection a] -> AtomMap a
- shadow_collection :: Ord a => [Collection a] -> Collection a
- merge :: Ord a => [Collection a] -> [a]
- merge' :: Ord a => [Collection a] -> AtomMap a
- merge_collection :: Ord a => [Collection a] -> Collection a
- sym_shadowing :: (Show a, Ord a) => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
- sym_merged_parents :: (Show a, Ord a) => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
- sym_inheritance :: Ord a => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
- module MO.Capture
- module StringTable.Atom
- trace :: String -> a -> a
Documentation
on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
data Ord a => Collection a
Constructors
MkCollection | |
Instances
Typeable1 Collection | |
Ord a => Eq (Collection a) | |
Ord a => Ord (Collection a) | |
(Ord a, Show a) => Show (Collection a) |
cmap :: (Ord a, Ord b) => (a -> b) -> Collection a -> Collection b
remove :: (Monad m, Ord a) => Atom -> a -> Collection a -> m (Collection a)
add :: (Monad m, Ord a) => Atom -> a -> Collection a -> m (Collection a)
insert :: Ord a => Atom -> a -> Collection a -> Collection a
emptyCollection :: Ord a => Collection a
newCollection :: Ord a => [(Atom, a)] -> Collection a
newCollection' :: Ord a => (a -> Atom) -> [a] -> Collection a
newCollectionMap :: Ord a => AtomMap a -> Collection a
items :: Ord a => Collection a -> [a]
items_named :: Ord a => Collection a -> [(Atom, a)]
includes :: Ord a => Collection a -> a -> Bool
includes_name :: Ord a => Collection a -> Atom -> Bool
includes_any :: Ord a => Collection a -> [a] -> Bool
includes_any_name :: Ord a => Collection a -> [Atom] -> Bool
includes_all :: Ord a => Collection a -> [a] -> Bool
shadow :: Ord a => [Collection a] -> [a]
shadow' :: Ord a => [Collection a] -> AtomMap a
shadow_collection :: Ord a => [Collection a] -> Collection a
merge :: Ord a => [Collection a] -> [a]
merge' :: Ord a => [Collection a] -> AtomMap a
merge_collection :: Ord a => [Collection a] -> Collection a
sym_shadowing :: (Show a, Ord a) => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
sym_merged_parents :: (Show a, Ord a) => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
sym_inheritance :: Ord a => b -> (b -> [b]) -> (b -> Collection a) -> Collection a
module MO.Capture
module StringTable.Atom
When called, trace
outputs the string in its first argument, before
returning the second argument as its result. The trace
function is not
referentially transparent, and should only be used for debugging, or for
monitoring execution. Some implementations of trace
may decorate the string
that's output to indicate that you're tracing. The function is implemented on
top of putTraceMsg
.