上下文
我有以下功能:
prop_SignAndVerify :: (PrivKey a b) => Blind a -> BS.ByteString -> Bool
prop_SignAndVerify bsk msg = case verify pk msg sig of
Left e -> error e
Right b -> b
where
sk = getBlind bsk
pk = toPublic sk
sig = case sign sk msg of
Left e -> error e
Right s -> s
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
-- instance PrivKey RSA.PrivateKey RSA.PublicKey where...
genRSA :: Gen RSA.PrivateKey
genRSAMessage :: Gen BS.ByteString
main = do
quickCheck . verbose
$ …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套有不同的错误类型,看起来像:
Either e1 (Either e2 a)
Run Code Online (Sandbox Code Playgroud)
我想要一个像以下一样的函数:
Either e1 (Either e2 a) -> Either e2 a
Run Code Online (Sandbox Code Playgroud)
更一般地说,是否存在匹配此模式的类型类?