class SquareRootFunction {

    public static final String NAME = "sqrt";

    public static void register(Functions.Builder module) {<FILL_FUNCTION_BODY>}

    private static double sqrt(double value) {
        if (value < 0) {
            throw new IllegalArgumentException("cannot take square root of a negative number");
        }
        return Math.sqrt(value);
    }
}

        for (var type : DataTypes.NUMERIC_PRIMITIVE_TYPES) {
            var typeSignature = type.getTypeSignature();
            module.add(
                scalar(NAME, typeSignature, DataTypes.DOUBLE.getTypeSignature())
                    .withFeature(Scalar.Feature.NULLABLE),
                (signature, boundSignature) ->
                    new DoubleScalar(signature, boundSignature, SquareRootFunction::sqrt)
            );
        }
    
<no_super_class>