with the arguments flipped: > derive(1.0, quadratic) ContractError: Expected fun, but got 1 For the `fn` argument of the call. // Forgetting an argument: > derive(quadratic) ContractError: Wrong number of arguments, expected 2 but got 1 // Calling with the wrong kind of function: > var fprime = derive(function(x) { return "**" + x + "**" }, 1.0) // There is now a contract-checking shell installed around //`fprime` that throws an error when `fprime` is called: > fprime(100) ContractError: `fn()` broke its contract Expected number, but got '**100.5**' for the return value of the call.