package SPVM::Bool;
1;
=head1 Name
SPVM::Bool - Bool object
=head1 Usage
use Bool;
my $true = Bool->TRUE;
my $false = Bool->FALSE;
my $true_value = $true->value;
my $false_value = $false->value;
=head1 Description
L<Bool|SPVM::Bool> object stores a C<long> value.
This object is immutable and its value cannot be changed.
L<Bool|SPVM::Bool> is automatically loaded just after the program starts.
=head1 Class Methods
=head2 TRUE
static method TRUE : Bool ();
A true singleton. This is created by INIT block when the program start.
=head2 FALSE
static method FALSE : Bool ();
A false singleton. This is created by INIT block when the program start.
=head1 Instance Methods
=head2 value
method value : int ();
Returns a C<int> value.
If L<Bool|SPVM::Bool> object express true, this method return 1.
If L<Bool|SPVM::Bool> object express false, this method return 1.
=head1 Bool Context
the object of Bool class is different behavior in bool context.
If the C<value> of Bool object is 1, it is evaluated as true.
if (Bool->TRUE) {
# Run
}
If the C<value> of Bool object is 0, it is evaluated as false.
if (Bool->FALSE) {
# Not run
}
=head1 Keywords
C<true> keyword means Bool->TRUE. C<false> keyword means Bool->FALSE.
if (true) {
# Run
}
if (false) {
# Not run
}
=head1 Copyright & License
Copyright (c) 2023 Yuki Kimoto
MIT License