modify :: (s -> s) -> Shell s ()
modify f = do
    (sd, s) <- ST.get
    ST.put (sd, f s)
modify :: (s -> s) -> Shell s ()
modify f = do
    (sd, s) <- ST.get
    ST.put (sd, f s)
modify f = do
    (sd, s) <- ST.get
    ST.put (sd, f s)