NAME
Data::Monad::List - The List monad.
SYNOPSIS
use Data::Monad::List;
my $m = scalar_list(10, 20);
$m = $m->flat_map(sub {
    my $v = shift;
    scalar_list($v + 1, $v + 2);
});
my @result = $m->scalars; # (11, 12, 21, 22)
DESCRIPTION
Data::Monad::List represents non-deterministic values.
This module is marked EXPERIMENTAL. API could be changed without any notice.
METHODS
- $list = scalar_list(@single_values)
 - 
Is the same as following lines.
$list = Data::Monad::List->new([$single_values[0]], [$single_values[1]], ...) - $list = list_unit(@values)
 - $list = list_zero()
 - $f = list_flat_map_multi(\&f, $list1, $list2, ...)
 - $f = list_map_multi(\&f, $list1, $list2, ...)
 - $list = list_sequence($list1, $list2, ...)
 - 
These are shorthand of methods which has the same name.
 - $list = Data::Monad::List->new(\@values1, \@values2, ...)
 - 
The constructor of this class.
 - zero
 - 
Overrides methods of Data::Monad::Base::MonadZero.
 - unit
 - flat_map
 - 
Overrides methods of Data::Monad::Base::Monad.
 - @values = $list->values
 - 
Retrieves list of values from
$list - @single_values = $list->scalars
 - 
Retrieves values which was set by the
scalar_listmethod. 
AUTHOR
hiratara <hiratara {at} cpan.org>
SEE ALSO
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.