Экземпляр Show для функции

Сейчас я пытаюсь написать небольшой экземпляр Show для примитивных арифметических функций.

Цель состоит в том, чтобы сделать отображаемым список функций.

Очень простая функция show выглядит так:

  showOp :: (Int -> Int -> Int) -> String
  showOp op
    | op 3 3 == 6 = "plus"
    | op 3 3 == 0 = "minus"
    | op 3 3 == 9 = "times"
    | op 3 3 == 1 = "divide"
    | otherwise = "undefined"

Но я не могу получить экземпляр Show for (Int -> Int -> Int). Я пробовал так:

    instance Show (Int -> Int -> Int) where
    show op = show "asdf"

Но не работает. WinHugs просто возвращает ошибку

    Syntax error in instance head (variable expected)

. Можно ли вообще определить Show для функций? Если это так, как я могу решить эту проблему?

5
задан Matvey Aksenov 11 May 2012 в 12:24
поделиться