我需要一些帮助来设计一元数据类型,我似乎很难理解这个想法,但我非常清楚我想要什么。只有类型检查器似乎需要一些说服力。
我想要的是一些Primitive
可以是单子的数据类型。其功能基本上是绘制原语,我希望能够将它们组合起来,并且组合也是原语,就像Parser
库中的类型一样parsec
。但是实际的绘图必须用一个IO
单子来完成。
顺便说一句,我也有一堂Drawable a
这样的课:
class Drawable a where
draw :: (MonadIO m) => Pos -> a -> m ()
我当然希望每个 Primitive 都是可绘制的。感谢您的任何意见。