Bracket Matching by moriA

m@main=getLine>>=putStrLn.(" "#)>>m
(a:x)#(b:y)|elem b"([{<"=(b:a:x)#y|a<b&&b<[a..]!!4=x#y|1>0="failed at: "++b:y
" "#_="yes"
x#_=x#"EOL"

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top