1文字の二項演算子で空いているもの

% cat >t.hs
main = putStr $ unlines [":t ("++[c]++")"|c<-['!'..'~']]
% runghc t.hs | head 1
:t (!)
% runghc t.hs | ghci 2>&1 | grep 'scope: `[^A-Za-z]'
<interactive>:1:0: Not in scope: `!'
<interactive>:1:0: Not in scope: `#'
<interactive>:1:0: Not in scope: `%'
<interactive>:1:0: Not in scope: `&'
<interactive>:1:0: Not in scope: `?'

というわけで、(!),(#),(%),(&),(?)の5つ。

ただし、Preludeではないが
(!)がData.Array,Data.Map,Text.Htmlに、
(%)がData.Ratioに、
(&)がData.Graph.Inductive.Graphに定義されているようだ。

(#)と(?)はどこにも使われてなさそう。