4

どうしてできないの?

z = x?

しかし、私はこれを行うことができますか?

y s = x s

私はHaskellの初心者ですこれは私がGHCiで試していることです:

Prelude> import Happstack.Server
Prelude Happstack.Server> let x s = ok $ toResponse $ "Some string"
Prelude Happstack.Server> :t x
x :: FilterMonad Response m => t -> m Response

Prelude Happstack.Server> let y s = x s
Prelude Happstack.Server> :t y
y :: FilterMonad Response m => t -> m Response

Prelude Happstack.Server> let z = x
<interactive>:1:9:
    No instance for (FilterMonad Response m0)
      arising from a use of `x'
4

1 に答える 1

5

単相制限の別のケースのように見えます。

引数を明示的に含めるかy s = x s、明示的な型シグネチャを含めるか、。を指定してGHCiを実行することができます-XNoMonomorphismRestriction

于 2011-05-15T06:42:24.107 に答える