anchor.diff:  check_is_float(_ParamName, Num) ->
     Num.
   
  +check_postive_float(_ParamName, Num)
  +     when is_float(Num)
  +        , Num > 0.0
  +     ->
  +  Num;
  +check_postive_float(ParamName, Num) ->
  +  erlang:error("~p/~p must be floating point number > 0", [ParamName, Num] ).
  +
  +check_positive_int(_ParamName, Num)
  +    when is_integer(Num)
  +       , Num > 0
  +    ->
  +  Num;
  +check_positive_int(ParamName, Num) ->
  +  erlang:error("~p/~p must be integer > 0", [ParamName, Num] ).
  +
   get_c_real(BinaryMap) ->
     CReal = maps:get(<<"cReal">>, BinaryMap),
     check_is_float(c_real, CReal).
  
positive.code: check_y_imaginary(_YImaginaryLow, _YImaginaryHigh) ->
    erlang:error( yi_must_be_floats_and_high_must_be_greater_than_low).
  
  
  
negative.code:   YImaginaryLow = get_y_imaginary_low(BinaryMap),
    YImaginaryHigh = get_y_imaginary_high(BinaryMap),
    check_y_imaginary(YImaginaryLow, YImaginaryHigh),
    Bailout = get_bailout(BinaryMap),
    MaxIter = get_max_iter(BinaryMap),
  
    JsonConfigMap = #{ width => Width
                     , height => Height
  