At least a bit tested with ghci ;x
At least a bit tested with ghci ;x