You may know about the following completely normal behaviour in javascript from the excellent talk by Gary Bernhardt entitled "wat":
js> {} + []
0
js> {} - []
-0
js> [] - {}
NaN
js> [] + {}
"[object Object]"
Enough about languages that are definitely not haskell[1], let's talk about nix
» nix repl
Welcome to Nix 2.11.0. Type :? for help.
nix-repl> f = a: a