Skip to content

Cannot find type class instance even though subclass instance is in scope #2959

Description

@no-longer-on-githu-b
class (Monad b, Monad m) <= MonadBase b m | m -> b where
  liftBase ::  a. b a -> m a

instance monadBaseReaderT :: (MonadBase b m) => MonadBase b (ReaderT r m) where
  liftBase = lift <<< liftBase

This code fails with this error:

[1/1 NoInstanceFound] src/Control/Monad/Base.purs:13:1

      v
  13  instance monadBaseReaderT :: (MonadBase b m) => MonadBase b (ReaderT r m) where
  14    liftBase = lift <<< liftBase
                          ^
  
  No type class instance was found for
  
    Control.Monad.Monad b0

However, by adding a Monad b constraint to the instance monadBaseReaderT, it compiles. However, Monad b should be implied by MonadBase b m.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions