查看Haskell箭头作为图形的工具

pkt*_*ner 8 haskell arrows graph

Haskell Arrows通常被解释为表达计算的有向无环图(DAG).我正在寻找可以使用这种关系的工具或库代码来帮助编程Arrows.

从箭头到图形,工具可以帮助可视化箭头代码.由于代码对应于计算的DAG,因此显示计算节点和输出到输入边缘的视觉表示是自然的.工具可以使用标准图形工具创建要查看和操作的图形.

是否有Arrow变换器可以增强任意计算的Arrow类,捕获>>>和***操作提供的结构,并且可以将计算作为基本Arrow操作的图形进行检查?

从图形到箭头,假设有一个DAG,其节点是箭头操作.是否有一个工具可以从这个构建整个DAG的箭头构建?

在没有找到这样的可视化工具的情况下,我用Google搜索了关于Haskell Arrows的大部分内容.我错过了什么?也许没有我想象的那么自然.

Gab*_*lez 8

一个很好的起点是使用所谓的"自由Arrow" 来指定箭头图形.您可以在此Stack Overflow答案中找到free Arrows的一个实现.可以将其视为图表的语法表示.Arrow

free Arrows的好处在于它们保留了图形的结构,然后您可以将其显示为图表.显示连接图后,您可以使用解释器将free Arrow转换为所需的Arrow.free Arrows具有的一个不错的属性是,根据定义,这样的解释器必须是唯一的(直到同构)(这是使其"自由"的属性之一).