package Camila::FFunction;

use 5.006;
use strict;
use warnings;

use Camila;
use Data::Dumper;

require Exporter;

our @ISA = qw(Exporter);

# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

# This allows declaration	use Camila::FFunction ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw();
our $VERSION = '0.01';

sub new  { bless(+{}) }
sub nill { return new }

sub from_values {
  my $key;
  my %me;
  while($key = shift) {
    my $value = shift;
    $me{$key->repr} = $value->repr;
  }
  return bless(\%me);
}

sub show {
  my $self = shift;

  return "[ ".join("\n  ", map {
    my ($kk,$vv);
    $kk = Camila::regen($_);
    $vv = Camila::regen($self->{$_});
    $kk->show ." -> ". $vv->show
  } keys %$self) . " ]";
}

sub repr { return Dumper(shift) }
1;

__END__

=head1 NAME

Camila::FFunction - Perl extension for

=head1 SYNOPSIS

  use Camila::FFunction;


=head1 DESCRIPTION



=head1 AUTHOR

Alberto Simões, E<lt>albie@alfarrabio.di.uminho.ptE<gt>

=head1 SEE ALSO

L<perl>.

=cut
