BEGIN
(* I'm dreaming of a white Christmas, *)
(* Just like the ones I used to know. *)
IF Christmas [ white ] AND
( Christmas [ white ] = Christmas [ known( me ) ] ) THEN
me := dream( Christmas [ white ] );
(* I'm dreaming of a white Christmas, *)
(* with every Christmas card I write. *)
FOR index := firstcard TO lastcard DO BEGIN
WITH card [ index ] DO me := dream( Christmas [ white ] );
END;
(* When the tree-tops glisten, *)
(* And children listen, *)
(* To hear sleighbells in the snow. *)
REPEAT wait UNTIL stateof ( tree.tops ) = glisten AND
stateof( children ) = listen( noiseof1in2( bells.sleigh, snow ) ) ;
(* May your days be merry and bright, *)
FOR index := firstday TO lastday DO BEGIN
day.yours[index] := merry;
day.yours[index] := bright;
END;
(* and may all your Christmases be white. *)
FOR index := firstxmas TO lastxmas DO
Christmas.yours[index] := white;
END.
Author unknown.