implement unary `!`
Merge branch 'bang' into liquidframeworks