小编clo*_*hug的帖子

在OCaml中使用GADT时,如何删除函数中的"不太通用的定义"错误消息?

我最近在OCaml一直在与GADT挣扎.我正在尝试为一种简单的语言编写一个解释器,使用不同的术语:

type (_, _) term =
  | Const : lit -> (state, value) term
  | Var : ident -> (state, value) term
  | Plus : expr * expr -> (state, value) term
  | Equ : expr * expr -> (state, value) term
  | Neg : expr -> (state, value) term
  | Skip : (state, state) term
  | Asn : ident * expr -> (state, state) term
  | Seq : stat * stat -> (state, state) term
  | If : expr …
Run Code Online (Sandbox Code Playgroud)

ocaml functional-programming algebraic-data-types gadt

3
推荐指数
1
解决办法
197
查看次数