@@ -80,6 +80,37 @@ packages.
80
80
* [ MonadST] : provides a way to lift ` ST ` -computations.
81
81
* [ MonadSay] : dummy debugging interface
82
82
83
+ ## Differences from ` base ` , ` async ` , or ` exceptions ` packages
84
+
85
+ ### Major differences
86
+
87
+ * ` getMonotonicTime ` returns ` Time ` (a newtype wrapper around ` DiffTime ` )
88
+ * ` Deadlock ` exceptions are not thrown to the main thread (see
89
+ [ ref] [ io-deadlock ] ), so they cannot be caught. This was a design decision,
90
+ which allows to catch all deadlocks which otherwise could be captured by
91
+ a ` catch ` .
92
+
93
+ ### Minor differences
94
+
95
+ Some of the types have more general kind signatures, e.g.
96
+
97
+ ```
98
+ type Async :: (Type -> Type) -> Type -> Type
99
+ ```
100
+
101
+ The first type of kind ` Type -> Type ` describes the monad which could be
102
+ instantiated to ` IO ` , ` IOSim ` or some other monad stacks built with monad
103
+ transformers. The same applies to many other types, e.g. ` TVar ` , ` TMVar ` .
104
+
105
+ The following types although similar to the originals are not the same as the
106
+ ones that come from ` base ` , ` async ` , or ` exceptions ` packages:
107
+
108
+ * ` Handler ` (origin: ` base ` )
109
+ * ` MaskingState ` (origin: ` base ` )
110
+ * ` Concurrently ` (origin: ` async ` )
111
+ * ` ExceptionInLinkedThread ` (origin: ` async ` ): ` io-class ` es version does not
112
+ store ` Async `
113
+ * ` ExitCase ` (origin: ` exceptions ` )
83
114
84
115
## Debuging & Insepction
85
116
@@ -117,6 +148,7 @@ its limitations and so there might be some rough edges. PRs are welcomed,
117
148
[ contributing ] : https://www.github.com/input-output-hk/io-sim/tree/master/CONTRIBUTING.md
118
149
[ `nothunks` ] : https://hackage.haskell.org/package/nothunks
119
150
[ labelThread-base ] : https://hackage.haskell.org/package/base-4.17.0.0/docs/GHC-Conc-Sync.html#v:labelThread
151
+ [ io-deadlock ] : https://hackage.haskell.org/package/base-4.19.0.0/docs/Control-Exception.html#t:Deadlock
120
152
121
153
[ MonadEventlog ] : https://hackage.haskell.org/package/io-sim-classes/docs/Control-Monad-Class-MonadEventlog.html#t:MonadEventlog
122
154
[ Debug.Trace ] : https://hackage.haskell.org/package/base/docs/Debug-Trace.html
0 commit comments