Number set type

How can I change the 'number set type' to solve below error?
where can I find information about 'number set type'

Error: narrowing constraint violation For 'value':
- expected: 'number set type' op type 'natural'
- but found: 'number set type' of type 'integer'

Error message for 'marge_1' in last line:

 'marge_2': number 'tmi2' = division ( .'tienduizend' as '10^4' , .'marge_1' )
'margeinkoop': number 'inkoop%'
  'inkoopprijs': number positive 'inkoop€' = ^ .'inkoopexclbtw'
  'inkoop10^2': number '100' = from 'inkoop€' .'inkoopprijs'                              
  'inkoop10^4': number '10000' = from 'inkoop€' .'inkoopprijs'                            
  'honderd': number '10^2' = division ( .'inkoop10^2' as '100' , .'inkoopprijs' )         
  'tienduizend': number '10^4' = division ( .'inkoop10^4' as '10000' , .'inkoopprijs' )    
  'marge100': number '10^2' = from 'inkoop%' .'margeinkoop'                               
  'marge_1': number '10^2' = sum ( .'honderd' , .'marge100' )                       
  'marge_2': number 'tmi2' = division ( .'tienduizend' as '10^4' , .'marge_1' )  

numerical-types
  'inkoop%'
  'inkoop€'

  '10^2'  //'marge10^2': number '10^2' = from 'inkoop%' .'MargeInkoop'
    = '100' / 'inkoop€'
    = 'inkoop%' * 1 *  10 ^ 0
  '10^4' //'marge10^4': number '10^4' = from '10^2' .'tussenmarge1'
    = '10000' / 'inkoop€'
    = '10^2' * 1 * 10 ^ 2
  '100'   //'inkoop10^2': number '100' = from 'inkoop€' .'InkoopPrijs'
    = 'inkoop€' * 1 * 10 ^ 2
  '10000' //'inkoop10^2': number '10000' = from 'inkoop€' .'InkoopPrijs'
    = 'inkoop€' * 1 * 10 ^ 4

The number set type is a relic from earlier language versions. It will be removed in a future version.

A number set type of type 'natural' is identical to a positive number. You can specify a positive number attribute like this:

'Pnum': number positive 'euro'

In computations, a non-zero number value is sometimes required. For example, to prevent division by zero. If a number is not necessarily non-zero, but you need it as e.g. the denominator in a division, you can use a switch ... compare ( ... ) statement, and provide a fallback value for the zero case explicitly:

'prijs': number 'euro' = switch .'inkoopprijs' compare ( 0 )  (
	| > as $'positive inkoopprijs' => division ( .'inkoop10^2' as '100' , $'positive inkoopprijs' ) // greater than zero; positive number
	| <= => 0 // less than or equal to zero; fallback value 0
)

Note that for the denominator, a negative number would be fine as well. Currently, you have to invert the sign of the number to achieve that:

'sign inverted inkoopprijs': number 'euro' = - .'inkoopprijs'
...
switch .'sign inverted inkoopprijs' compare ( 0 )  (
	| > as $'positive inkoopprijs' => - division ( .'inkoop10^2' as '100' , $'positive inkoopprijs' ) // note the - sign before the division
	| <= => 0
)

Future language versions will support this in a more convenient manner.

*BTW, you can create code blocks by wrapping your code in three backticks (```), and you can wrap your code in a single backtick for inline code, like this.