Maxims for malfeasant designers, or how to design languages to make programming as difficult as possible | Synapse