我有以下
data Expr = Condition v
| And Expr Expr
| Or Expr Expr
并且我被要求考虑以下无类型版本才能完成:
data Expr e where
我不确定我应该为构造函数写什么。我尝试了以下方法:
data Expr e where
Condition :: v -> Expr v
And :: -- really not sure what to do with this one
OR :: Expr b -> (Expr b -> Expr a) -> Maybe Expr a -> Expr b
此外,由于v
可以是任何类型,即int
等bool
,是否可以将其称为以下(上)并声明v
稍后的类型?
data v = IntVat int
任何帮助将非常感激 :)
编辑:更改了整个帖子以添加更多信息和清晰度(基于我对练习的理解)。
基本上,我需要帮助找出data Expr = Condition v...etc
作为参考的 GADT 的构造函数。