AP
Size: a a a
AP
AP
AP
AP
AP
JS
class Action x a where
send :: (MonadIO m , IsLabel x (r -> TQueue a) , MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act
AP
AP
class Action x a where
send :: (MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act
AP
library/IDCar/Action.hs:16:3-76: error:
• Could not deduce (Action x0 a)
from the context: (Action x a, MonadIO m, HasField x r (TQueue a),
MonadReader r m)
bound by the type signature for:
send :: forall k (x :: k) a (m :: * -> *) r.
(Action x a, MonadIO m, HasField x r (TQueue a),
MonadReader r m) =>
a -> m ()
at library/IDCar/Action.hs:16:3-76
The type variable ‘x0’ is ambiguous
• In the ambiguity check for ‘send’
To defer the ambiguity check to use sites, enable AllowAmbiguousTypes
When checking the class method:
send :: forall k (x :: k) a (m :: * -> *) r.
(Action x a, MonadIO m, HasField x r (TQueue a),
MonadReader r m) =>
a -> m ()
In the class declaration for ‘Action’
|
16 | send :: (MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
MK
AP
JS
AP
class Action x a
send :: (Action x a, MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act
AP
JS
JS
class Action x a
send :: (Action x a, MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act
JS
class Action x a
send :: (Action x a, MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act
AP
AP
MK
class Action x a
send :: (Action x a, MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
send act = do
chan <- asks (getField @x)
atomically $ writeTQueue chan act