Funciones de orden superior y ST

Estoy jugando conhttp://hackage.haskell.org/packages/archive/vault/0.2.0.0/doc/html/Data-Vault-ST.html Y quiere escribir funciones como las siguientes:

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)

etc. Si sustituyo estas funciones por otras que no toman argumentos y llamo a una función particular en lugar de f, funciona, pero estas funciones de orden superior no escribirán "check".

¿Qué está pasando y puedo arreglarlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta