Compiling contracts