Функции высшего порядка и ST

Я играю сhttp://hackage.haskell.org/packages/archive/vault/0.2.0.0/doc/html/Data-Vault-ST.html и хотите написать функции, подобные следующим:

onVault  f = runST (f <
onVault  f = runST (f <$> Vault.newKey)
onVault2 f = runST (f <$> Vault.newKey <*> Vault.newKey)
gt; Vault.newKey) onVault2 f = runST (f <
onVault  f = runST (f <$> Vault.newKey)
onVault2 f = runST (f <$> Vault.newKey <*> Vault.newKey)
gt; Vault.newKey <*> Vault.newKey)

и т.д. Если я заменю эти функции на те, которые не принимают аргументов и вызывают определенную функцию вместо f, это работает, но эти функции более высокого порядка не будут проверять тип.

Что происходит и можно ли это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос