Here is my code of simple RPN calculator in Erlang
-module('Kalkulator_ONP').
-author("user").
%% API
-export([onp/1]).
onp(Expression) ->
onp(string:tokens(Expression, " "),[]).
onp([], [Result]) ->
Result;
onp([NumberString|Rest], Stack) when is_integer(string:to_integer(NumberString)) ->
Number = string:to_integer(NumberString),
onp(Rest, [Number|Stack]);
onp([Operator|Rest], [Number1, Number2|Stack]) when Operator == "+" ->
onp(Rest, [Number1+Number2|Stack]);
onp([Operator|Rest], [Number1, Number2|Stack]) when Operator == "-" ->
onp(Rest, [Number1-Number2|Stack]);
onp([Operator|Rest], [Number1, Number2|Stack]) when Operator == "*" ->
onp(Rest, [Number1*Number2|Stack]);
onp([Operator|Rest], [Number1, Number2|Stack]) when Operator == "/" ->
onp(Rest, [Number1/Number2|Stack]);
onp([Operator|Rest], [Number|Stack]) when Operator == "sqrt" ->
onp(Rest, [math:sqrt(Number)|Stack]);
onp([Operator|Rest], [Number1, Number2|Stack]) when Operator == "^" ->
onp(Rest, [math:pow(Number1, Number2)|Stack]);
onp([Operator|Rest], [Number|Stack]) when Operator == "sin" ->
onp(Rest, [math:sin(Number)|Stack]);
onp([Operator|Rest], [Number|Stack]) when Operator == "cos" ->
onp(Rest, [math:cos(Number)|Stack]);
onp([Operator|Rest], [Number|Stack]) when Operator == "tan" ->
onp(Rest, [math:tan(Number)|Stack]).
Line onp([NumberString|Rest], Stack) when is_integer(string:to_integer(NumberString)) -> is the line where intelij highlights (string:to_integer(NumberString) red. Ive already searched what can be the possible solution althoug I didnt find answer. What is wrong in here?