For instance, the type of Boolean values consists of the constructors True and False that are declared as follows: data Bool = True | False Functions on Booleans can be defined by pattern matching, i.e., by providing several equations for different argument values: not True = False not False = True The principle of replacing equals by equals is still valid provided that the actual arguments have the required form, e.g.: not '(not False)' → 'not True' → False More complex data structures can be obtained by recursive data types.
De exemplu, tipul de valori booleene constă în constructorii True și False care sunt declarați după cum urmează: data Bool = True | False Funcțiile pentru booleani pot fi definite prin potrivirea tiparelor, adică prin furnizarea mai multor ecuații pentru valorile diferite ale argumentului: not True = False not False = True Principiul înlocuirii egal cu egal este încă valabil, cu condiția ca argumentele actuale să aibă forma cerută, de exemplu: not '(not False)' → 'not True' → False Structurile de date mai complexe pot fi obținute prin tipuri de date recursive.