Преобразование строки в конструктор типов в Haskell

Кто-нибудь знает, есть ли в Haskell функция, которая делает что-то вроде этого:

"Int" -> Int

"String" -> String

"Bool" -> Bool

т.е. он принимает строковое представление имени конструктора типа и преобразует его в фактический конструктор типа как в выражении, так и в шаблоне.

edit: Моя общая цель - упростить что-то вроде:

transExp (Add exp1 exp2) vars
  = transExp exp1 vars ++ transExp exp2 vars ++ [IAdd]

transExp (Sub exp1 exp2) vars
  = transExp exp1 vars ++ transExp exp2 vars ++ [ISub]

В соответствие с одним шаблоном, поэтому просто преобразовать Add или Sub в строку, добавить «I» впереди и преобразовать ее вернуться к типу.

7
задан nponeccop 17 November 2011 в 11:36
поделиться