Skip to content

Commit 2e59fee

Browse files
committed
fix: default instances
1 parent da51308 commit 2e59fee

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

src/Std/Internal/Async/Basic.lean

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,27 +84,35 @@ class MonadAsync (t : Type → Type) (m : Type → Type) extends Monad m where
8484
-/
8585
async : m α → m (t α)
8686

87+
@[default_instance]
8788
instance [Monad m] [MonadAwait t m] : MonadAwait t (StateT n m) where
8889
await := liftM (m := m) ∘ MonadAwait.await
8990

91+
@[default_instance]
9092
instance [Monad m] [MonadAwait t m] : MonadAwait t (ExceptT n m) where
9193
await := liftM (m := m) ∘ MonadAwait.await
9294

95+
@[default_instance]
9396
instance [Monad m] [MonadAwait t m] : MonadAwait t (ReaderT n m) where
9497
await := liftM (m := m) ∘ MonadAwait.await
9598

99+
@[default_instance]
96100
instance [MonadAwait t m] : MonadAwait t (StateRefT' s n m) where
97101
await := liftM (m := m) ∘ MonadAwait.await
98102

103+
@[default_instance]
99104
instance [MonadAwait t m] : MonadAwait t (StateT s m) where
100105
await := liftM (m := m) ∘ MonadAwait.await
101106

107+
@[default_instance]
102108
instance [MonadAsync t m] : MonadAsync t (ReaderT n m) where
103109
async p := MonadAsync.async ∘ p
104110

111+
@[default_instance]
105112
instance [MonadAsync t m] : MonadAsync t (StateRefT' s n m) where
106113
async p := MonadAsync.async ∘ p
107114

115+
@[default_instance]
108116
instance [Functor t] [inst : MonadAsync t m] : MonadAsync t (StateT s m) where
109117
async p := fun s => do
110118
let t ← inst.async (p s)
@@ -125,9 +133,7 @@ protected def pure (x : α) : ETask ε α :=
125133
Task.pure <| .ok x
126134

127135
/--
128-
Creates a new `ETask` that will run after `x` has finished.
129-
130-
If `x`:
136+
Creates a new `ETask` that will run after `x` has finished. If `x`:
131137
- errors, return an `ETask` that resolves to the error.
132138
- succeeds, return an `ETask` that resolves to `f x`.
133139
-/
@@ -151,22 +157,22 @@ protected def bind (x : ETask ε α) (f : α → ETask ε β) : ETask ε β :=
151157
| .error e => Task.pure <| .error e
152158

153159
/--
154-
Similar to `bind`, however `f` has access to the `IO` monad. If `f` throws an error, the returned
160+
Similar to `bind`, however `f` has access to the `EIO` monad. If `f` throws an error, the returned
155161
`ETask` resolves to that error.
156162
-/
157163
@[inline]
158-
protected def bindIO (x : ETask ε α) (f : α → EIO ε (ETask ε β)) : EIO ε (ETask ε β) :=
164+
protected def bindEIO (x : ETask ε α) (f : α → EIO ε (ETask ε β)) : EIO ε (ETask ε β) :=
159165
EIO.bindTask x fun r =>
160166
match r with
161167
| .ok a => f a
162168
| .error e => .error e
163169

164170
/--
165-
Similar to `bind`, however `f` has access to the `IO` monad. If `f` throws an error, the returned
171+
Similar to `bind`, however `f` has access to the `EIO` monad. If `f` throws an error, the returned
166172
`ETask` resolves to that error.
167173
-/
168174
@[inline]
169-
protected def mapIO (f : α → EIO ε β) (x : ETask ε α) : BaseIO (ETask ε β) :=
175+
protected def mapEIO (f : α → EIO ε β) (x : ETask ε α) : BaseIO (ETask ε β) :=
170176
EIO.mapTask (t := x) fun r =>
171177
match r with
172178
| .ok a => f a
@@ -622,13 +628,13 @@ Returns the `Async` computation inside an `AsyncTask`, so it can be awaited.
622628
def async (self : Async α) : Async (AsyncTask α) :=
623629
EAsync.lift <| self.asTask
624630

625-
instance : MonadAwait AsyncTask Async :=
626-
inferInstanceAs (MonadAwait AsyncTask (EAsync IO.Error))
627-
628631
@[default_instance]
629632
instance : MonadAsync AsyncTask Async :=
630633
inferInstanceAs (MonadAsync (ETask IO.Error) (EAsync IO.Error))
631634

635+
instance : MonadAwait AsyncTask Async :=
636+
inferInstanceAs (MonadAwait AsyncTask (EAsync IO.Error))
637+
632638
instance : MonadAwait IO.Promise Async :=
633639
inferInstanceAs (MonadAwait IO.Promise (EAsync IO.Error))
634640

0 commit comments

Comments
 (0)