Переменная и Expr не являются встроенными типами в Haskell.
Если вы используете библиотеку или работаете над частью более крупной программы, возможно, она обладает теми возможностями, которые вам нужны.
Если вы сами определили эти типы, то решать вам.
Если это для курсовой работы, то вы можете прочитать о грамматиках и методах синтаксического анализа. Попробуйте разбить строку на токены и создать символическое представление, которое вы сможете оценить. Если вы еще не нашли его, http://www.zvon.org/other/haskell/Outputglobal/index.html - хороший справочный сайт.
Если вы увлекаетесь чем-то более тяжелым (и обладаете твердым контролем над haskell и монадическим программированием), то я бы рекомендовал потратить время на обучение использованию Parsec http://www.haskell.org/haskellwiki/Parsec.