#!/usr/bin/perl

## this short script demonstrates how I'd like to implement frozen
## groups

package MyThing;

use Moose;

has 'param'  => (is=>'rw', isa => 'Int',  default => 0,);
## several dozen more parameters follow ....

has 'frozen' => (is=>'rw', isa => 'Bool', default => q{},);

1;

package main;

my $a = MyThing->new;

$a->param(5);
print $a->param, $/;		# prints 5

$a->frozen(1);
$a->param(7);
print $a->param, $/;		# still prints 5

$a->frozen(0);
$a->param(7);
print $a->param, $/;		# now prints 7
