stop :: (Functor m, MonadBooks m) => Maybe Text -> Maybe Text -> m ()
stop q l = do
    b <- reading >>= maybe expect1 query1 q
    sec <- maybe (return ToBeRead) findSection l
    modify $ Set.insert (b { bookSection = sec })
           . Set.delete  b
    putLn [st|Stopped reading #{formatBook b}.|]
stop :: (Functor m, MonadBooks m) => Maybe Text -> Maybe Text -> m ()
stop q l = do
    b <- reading >>= maybe expect1 query1 q
    sec <- maybe (return ToBeRead) findSection l
    modify $ Set.insert (b { bookSection = sec })
           . Set.delete  b
    putLn [st|Stopped reading #{formatBook b}.|]
stop q l = do
    b <- reading >>= maybe expect1 query1 q
    sec <- maybe (return ToBeRead) findSection l
    modify $ Set.insert (b { bookSection = sec })
           . Set.delete  b
    putLn [st|Stopped reading #{formatBook b}.|]