| 9 | instance Enum Natural |

| 10 | instance Eq Natural |

| 11 | instance Integral Natural |

| 12 | instance Num Natural |

| 13 | instance Ord Natural |

| 14 | instance Read Natural |

| 15 | instance Real Natural |

| 16 | instance Show Natural |

| 17 | }}} |

| 18 | The instances make it possible to work with 'Naturals' as with any other numeric type. |

| 19 | Note, however, that some of the operations are partial. |

| 20 | For example, subtracting a larger number from a smaller one results in the undefined value of type ''Natural''. |

| 21 | |

| 22 | We also provide some functions for converting ''Interger'' values into their corresponding ''Natural'' ones. |

| 23 | We do this by using an intermediate representation for integers in terms of naturals, ''NaturalInteger''. This type |

| 24 | is intended to be used only for the conversion. While, in principle, we could provide numeric instances for the type, |

| 25 | we chose not to, because we would be duplicating functionality provided by the type 'Integer'. |

| 26 | |

| 27 | {{{ |