MetaObject-0.0.6.20110925: A meta-object system for Haskell based on Perl 6

Safe HaskellNone

MO.Util

Synopsis

Documentation

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

Constructors

MkCollection 

Fields

c_objects :: Set a
 
c_names :: AtomMap a
 

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

newCollection :: Ord a => [(Atom, a)] -> Collection a

newCollection' :: Ord a => (a -> Atom) -> [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_any :: Ord a => Collection a -> [a] -> Bool

includes_all :: Ord a => Collection a -> [a] -> Bool

shadow :: Ord a => [Collection a] -> [a]

shadow' :: Ord a => [Collection a] -> AtomMap a

merge :: Ord a => [Collection a] -> [a]

merge' :: Ord a => [Collection a] -> AtomMap 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

trace :: String -> a -> a

The trace function outputs the trace message given as its first argument, before returning the second argument as its result.

For example, this returns the value of f x but first outputs the message.

 trace ("calling f with x = " ++ show x) (f x)

The trace function should only be used for debugging, or for monitoring execution. The function is not referentially transparent: its type indicates that it is a pure function but it has the side effect of outputting the trace message.