(Notice that codice_10 stands for "Register transfer level" design.) While the example above may seem verbose to HDL beginners, many parts are either optional or need to be written only once. Generally simple functions like this are part of a larger behavioral module, instead of having a separate module for something so simple. In addition, use of elements such as the codice_4 type might at first seem to be an overkill. One could easily use the built-in codice_1 type and avoid the library import in the beginning. However, using a form of many-valued logic, specifically 9-valued logic (codice_13,codice_14,codice_15,codice_16,codice_17,codice_18,codice_19,codice_20,codice_21), instead of simple bits (0,1) offers a very powerful simulation and debugging tool to the designer which currently does not exist in any other HDL.