There is no beating it's compiler for error messages, tooling and extensive beginner friendliness.
Elm is how I learned functional programming and to build 2D games there are many libraries to choose from, you can use the simplest one of them created by the elm author himself
Elm playground https://package.elm-lang.org/packages/evancz/elm-playground/...
Speaking of typeclasses not being in elm, I think one can appreciate them better when the things they provide have to be manually written.