Неявные параметры и функции

У меня проблема с неявными параметрами в Haskell (GHC). У меня есть функция f, которая предполагает неявный параметр xи хотела бы инкапсулировать ее в контексте, применяя fк g

f :: (?x :: Int) => Int -> Int
f n = n + ?x

g :: (Int -> Int) -> (Int -> Int)
g t = let ?x = 5 in t

Но когда я пытаюсь оценить

g f 10

, я получаю сообщение об ошибке, что xне привязано, например:

Unbound implicit parameter (?x::Int)
  arising from a use of `f'
In the first argument of `g', namely `f'
In the second argument of `($)', namely `g f 10'

Кто-нибудь может сказать мне, что я делаю неправильно?

(Я пытаюсь заставить работать интерфейс WordNet для Haskell - http://www.umiacs.umd.edu/~hal/HWordNet/- и он использует неявные параметры указанным выше образом, и я продолжаю получать ошибки, поскольку тот, что выше, когда я пытаюсь его скомпилировать)

9
задан niklascp 21 June 2012 в 15:31
поделиться