Design by contract for Go