1

我正在解析一些输入,对此我有类似的东西:

{-# LANGUAGE DataKinds, KindSignatures #-}
data InputKind = A | B | C
data Input (kind :: InputKind) =
    InputA Char
  | InputB Double String
  | InputC Int String

然后我有我的解析功能:

parseA :: Parser (Either SomeError (Input 'A))
parseB :: Parser (Either SomeError (Input 'B))
parseC :: Parser (Either SomeError (Input 'C))

所以,我现在有兴趣写一些看起来像这样的东西:

parse :: Parser (Either SomeError (Input (kind :: InputKind)))

有什么方法可以让类型有意义吗?

4

0 回答 0