|
|
|
|
|
|
| Synopsis |
|
|
|
|
| The main Hood API
|
|
| observe :: Observable a => String -> a -> a |
observe observes data structures in flight.
An example of use is
map (+1) . observe "intermeduate" . map (+2)
In this example, we observe the value that flows from the producer
map (+2) to the consumer map (+1).
observe can also observe functions as well a structural values.
|
|
| newtype Observer |
|
|
| type Observing a = a -> a |
|
| class Observable a where |
| | Methods | | observer :: a -> Parent -> a | | | observers :: String -> (Observer -> a) -> a |
| | Instances | | Observable Bool | | | Observable Char | | | Observable Double | | | Observable Float | | | Observable Int | | | Observable Integer | | | Observable () | | | Observable Dynamic | | | Observable SomeException | | | Observable a => Observable [a] | | | Observable a => Observable (IO a) | | | Observable a => Observable (Maybe a) | | | (Observable a, Observable b) => Observable (a -> b) | | | (Observable a, Observable b) => Observable (Either a b) | | | (Observable a, Observable b) => Observable (a, b) | | | (Ix a, Observable a, Observable b) => Observable (Array a b) | | | (Observable a, Observable b, Observable c) => Observable (a, b, c) | | | (Observable a, Observable b, Observable c, Observable d) => Observable (a, b, c, d) | | | (Observable a, Observable b, Observable c, Observable d, Observable e) => Observable (a, b, c, d, e) | |
|
|
|
| runO :: IO a -> IO () |
The main entry point; run some IO code, and debug inside it.
An example of using this debugger is
runO (print [ observe +1 (+1) x | x <- observe xs [1..3]]) [2,3,4]
-- +1
{ 1 -> 2
}
-- +1
{ 2 -> 3
}
-- +1
{ 3 -> 4
}
-- xs
1 : 2 : 3 : []Which says, the return is [2,3,4], there were 3 calls to +1
(showing arguments and results), and xs, which was the list
1 : 2 : 3 : [].
|
|
| printO :: Show a => a -> IO () |
| print a value, with debugging
|
|
| putStrO :: String -> IO () |
| print a string, with debugging
|
|
| For advanced users, that want to render their own datatypes.
|
|
| (<<) :: Observable a => ObserverM (a -> b) -> a -> ObserverM b |
|
| thunk :: Observable a => a -> ObserverM a |
|
| send :: String -> ObserverM a -> Parent -> a |
|
| observeBase :: Show a => a -> Parent -> a |
|
| observeOpaque :: String -> a -> Parent -> a |
|
| For users that want to write there own render drivers.
|
|
| debugO :: IO a -> IO [CDS] |
| run some code and return the CDS structure (for when you want to write your own debugger).
|
|
| data CDS |
| Constructors | | Instances | |
|
|
| Produced by Haddock version 2.7.2 |