use enum instance for Action to allow range syntax
putStrLn . show = print
less parens
add () if only import class instances
\x -> f x y is best written infix as `f` y
add missing type signature
make isValid easier to read a little bit