jtdaugherty / vty

A high-level ncurses alternative written in Haskell
BSD 3-Clause "New" or "Revised" License
319 stars 57 forks source link

Compatibility with mtl-2.3 #245

Closed sjakobi closed 1 year ago

sjakobi commented 2 years ago

vty will apparently require code changes:

Building library for vty-5.35.1..
[ 1 of 40] Compiling Codec.Binary.UTF8.Debug ( src/Codec/Binary/UTF8/Debug.hs, dist/build/Codec/Binary/UTF8/Debug.o, dist/build/Codec/Binary/UTF8/Debug.dyn_o )
[ 2 of 40] Compiling Data.Terminfo.Parse ( src/Data/Terminfo/Parse.hs, dist/build/Data/Terminfo/Parse.o, dist/build/Data/Terminfo/Parse.dyn_o )
[ 3 of 40] Compiling Data.Terminfo.Eval ( src/Data/Terminfo/Eval.hs, dist/build/Data/Terminfo/Eval.o, dist/build/Data/Terminfo/Eval.dyn_o )

src/Data/Terminfo/Eval.hs:76:5: error:
    • Variable not in scope:
        forM_
          :: String -> (a0 -> m0 ()) -> StateT EvalState (Writer Write) ()
    • Perhaps you meant one of these:
        ‘Vector.forM_’ (imported from Data.Vector.Unboxed),
        ‘Vector.forM’ (imported from Data.Vector.Unboxed),
        ‘Vector.iforM_’ (imported from Data.Vector.Unboxed)
   |
76 |     forM_ (show p) $ tell.writeWord8.toEnum.fromEnum
   |     ^^^^^
jtdaugherty commented 2 years ago

Thanks for reporting this. Looking into this, it appears that we're inadvertently depending on mtl for forM_ in that module because the mtl modules re-export Control.Monad. Presumably the re-export went away in 2.3, which would reveal this hidden dependency.

jtdaugherty commented 1 year ago

This is now fixed on master.