+use vars qw($VERSION $BRANCH);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0;
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
+
+sub alloc($$$)
+{
+ my ($pkg, $year, $thing) = @_;
+ return bless [$year, $thing], ref($pkg)||$pkg;
+}
+
+sub copy
+{
+ my $old = shift;
+ return $old->alloc(@$old);
+}
+
+sub cmp($$)
+{
+ my ($a, $b) = @_;
+ return $a->[1] - $b->[1] if ($a->[0] == $b->[0]);
+ return $a->[0] - $b->[0];
+}
+
+sub year
+{
+ return $_[0]->[0];
+}
+
+sub thing
+{
+ return $_[0]->[1];
+}
+
+package Julian::Day;
+
+use vars qw(@ISA);
+@ISA = qw(Julian);