在haskell中使用forall量词的谓词?

时间:2013-01-09 14:48:41

标签: haskell typeclass forall multiparameter

我想编写接受类型值的函数,它具有多参数类型类的实例以及每个类型。这样的事情(test功能的签名是非法的):

class Test a b

test :: forall a. (forall b. Test a b) => a -> a

有没有办法表达这种限制?

1 个答案:

答案 0 :(得分:3)

根据您的目标,可能会有更好的解决方案。

但您可以使用constraints包来提问。

{-# LANGUAGE FlexibleContexts, ConstraintKinds, MultiParamTypeClasses #-}

import Data.Constraint.Forall

class Test a b

test :: Forall (Test a) => a -> a
test = undefined