相关疑难解决方法(0)

GADT中任何`DataKind`的列表

放弃

GADTs和DataKinds对我来说是未开发的领域,因此我不了解它们的一些限制和功能.

问题

所以我正在为JavaScript代码发射器编写一个AST,并且我已经确定了表达式之间的一个边缘情况,那就是它们可以是引用或不引用.所以我使用GADTS和datakinds来键入JavaScript表达式语义的这个方面.ast看起来像这样.

表达式AST的子集

-- at the moment I'm just using a bool to identify if the expression 
-- behaves as an reference, but I'll probably change it due to the fact
-- a bool is pretty vague

data JSExp :: Bool -> * where

  JSNumber :: Double -> JSExp False
  JSBool :: Bool -> JSExp False

  JSReference :: Text -> JSExp True
  JSProperty :: JSExp a -> Text -> JSExp True
  JSAssign :: JSExp True -> JSExp b …
Run Code Online (Sandbox Code Playgroud)

haskell gadt data-kinds

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

标签 统计

data-kinds ×1

gadt ×1

haskell ×1