| 
									
										
										
										
											2018-10-02 14:07:06 -04:00
										 |  |  | <section xmlns="http://docbook.org/ns/docbook" | 
					
						
							|  |  |  |          xmlns:xlink="http://www.w3.org/1999/xlink" | 
					
						
							|  |  |  |          xmlns:xi="http://www.w3.org/2001/XInclude" | 
					
						
							|  |  |  |          xml:id="sec-debug"> | 
					
						
							| 
									
										
										
										
											2018-10-02 15:59:59 -04:00
										 |  |  |  <title>Debugging Nix Expressions</title> | 
					
						
							| 
									
										
										
										
											2018-10-02 14:07:06 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-02 15:59:59 -04:00
										 |  |  |  <para> | 
					
						
							|  |  |  |   Nix is a unityped, dynamic language, this means every value can potentially | 
					
						
							|  |  |  |   appear anywhere. Since it is also non-strict, evaluation order and what | 
					
						
							|  |  |  |   ultimately is evaluated might surprise you. Therefore it is important to be | 
					
						
							|  |  |  |   able to debug nix expressions. | 
					
						
							|  |  |  |  </para> | 
					
						
							| 
									
										
										
										
											2018-10-02 14:07:06 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-02 15:59:59 -04:00
										 |  |  |  <para> | 
					
						
							|  |  |  |   In the <literal>lib/debug.nix</literal> file you will find a number of | 
					
						
							|  |  |  |   functions that help (pretty-)printing values while evaluation is runnnig. You | 
					
						
							|  |  |  |   can even specify how deep these values should be printed recursively, and | 
					
						
							|  |  |  |   transform them on the fly. Please consult the docstrings in | 
					
						
							|  |  |  |   <literal>lib/debug.nix</literal> for usage information. | 
					
						
							|  |  |  |  </para> | 
					
						
							|  |  |  | </section> |