<commit_before><commit_msg>Add documentation about types and values<commit_after>=head1 NAME

milldata - Mill types and values

=head1 DESCRIPTION

Mill has a dynamic type system.

=head2 Types

=head3 The Top and Bottom Types

The top type is a supertype of all types. The bottom type is a subtype of all
types. There are no types that are strict supertypes of the top type and there
are no types that are strict subtypes of the bottom type.

The bottom type is typically used as a return type for subroutines that never
return.

=head3 Protocol Types

A protocol type defines a set of subroutines which can be overloaded by a
protocol implementation. A protocol implementation overloads these subroutines
for some type, making that type a subtype of the protocol type.

=head3 Structure Types

A structure type defines a set of fields.

=head2 Destruction

When the reference count of a Mill value reaches zero, the C<destruct>
procedure in the C<mill> module is invoked if it is overloaded for the type of
the value. The value is passed as the argument to C<destruct>.

=cut

{'fraction_non_alphanumeric': 0.030612244897959183, 'fraction_numerical': 0.006493506493506494, 'mean_word_length': 4.341584158415841, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3256448', 'n_tokens_mistral': 292, 'n_tokens_neox': 276, 'n_words': 175}