####################################################################
#
# Implements a context in which the student's answer is treated as a
# literal string, and not parsed further. The real answer checking
# should be performed in a custom checker passed to the answer
# string's cmp() method. E.g.,
#
# loadMacros("contextArbitraryString.pl");
# Context("ArbitraryString");
#
# ANS(Compute("The string I want")->cmp(checker => sub {
# my ($correct,$student,$ans) = @_;
# $correct = $correct->value; # get perl string from String object
# $student = $student->value; # ditto
# ##
# ## do your checking here, and return true if correct
# ## or false if incorrect. For example
# ## return $correct eq $student;
# ##
# return $score;
# }));