(作为借口:标题模仿了为什么我们需要monad?)
有容器(和索引的)(和无用的)和描述.但是容器是有问题的,根据我很小的经验,就容器而言,比描述更难以思考.非索引容器的类型是同构的?- 这是非常不明确的.形状和位置描述有帮助,但在
?_?? : ? {? ? ?} -> Container ? ? -> Set ? -> Set (? ? ? ? ?)
? Sh ? Pos ?? A = ? ? sh -> Pos sh -> A
K? : ? {? ?} -> Set ? -> Container ? ?
K? A = A ? const (Lift ?)
Run Code Online (Sandbox Code Playgroud)
我们本质上是使用?而不是形状和位置.
容器上的严格正面免费monad的类型有一个相当简单的定义,但Freermonad 的类型对我来说看起来更简单(在某种意义上,Freer …