GHC warns that I don't have the function signatures at the top level. I don't get why I would need them. The problem with providing them is that they are quite sophisticated, like this one (autogenerated):
applyValue :: forall t t1 t2 t3 t4.
(t2 -> t)
-> (t2 -> t3 -> t4 -> t1) -> t2 -> t3 -> t4 -> (t -> Bool) -> [t1]
So why would I bother adding them?
the function itself:
applyValue getValueAt stitchAndMove at fabric mark matchAt =
if matchAt (getValueAt at)
then [stitchAndMove at fabric mark]
else []
-Wall, you can use-fno-warn-missing-signatures. It's considered good practice not to leave them out - see Daniel Wagner's answer for reasons why.