NAME
FP::Abstract::Pure - functional purity protocol
SYNOPSIS
use FP::List;
my $v= list(1); # or any other data structure that implements
# FP::Abstract::Pure
is UNIVERSAL::isa($v, "FP::Abstract::Pure"), 1;
# Or use Safe::Isa instead of UNIVERSAL::isa, but I don't understand
# why overriding isa is useful (why fake inherit as opposed to real
# inheriting but then shadowing what needs to be shadowed? NEXT method
# and that needs to be supported in mock classes? TODO figure out.)
# but usually:
use FP::Predicates;
is_pure ($v) # true if $v does (officially) not support mutation
DESCRIPTION
Base class for all data structures that don't allow mutation (by ordinary programs), i.e. are persistent.
More precisely, those objects that don't have methods that when called make other methods non-functions.
NOTE
This is alpha software! Read the package README.