这个类型类适合哪种monad样式类型类?

时间:2018-05-02 14:54:53

标签: haskell monads category-theory

我有一个t类型支持以下三个操作:

extract :: t a -> a
duplicate :: t a -> t (t a)
(<*>) :: t (a -> b) -> t a -> t b

当然我也可以写bind:

(>>=) :: f a -> (a -> f b) -> f b
(>>=) x f = f (extract x)

join

join :: t (t a) -> t a
join = extract

但我不能写fmappure

所以这是一种“monad”,有点像“comonad”,但没有fmap

从技术上讲,我有一个fmappure,但他们受到限制。

我查看了各种受约束的仿函数样式包,但它们似乎也限制了(<*>),但在我的情况下,(<*>)不受约束。

是否存在可以将此类型压缩的现有类型类?

如果有人有兴趣,我正在处理的实际类型是Closure类型

0 个答案:

没有答案