此类型类适合什么monad样式类型类?

Cli*_*ton 5 monads haskell category-theory

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

extract :: t a -> a
duplicate :: t a -> t (t a)
(<*>) :: t (a -> b) -> t a -> t b
Run Code Online (Sandbox Code Playgroud)

当然,我也可以写bind:

(>>=) :: f a -> (a -> f b) -> f b
(>>=) x f = f (extract x)
Run Code Online (Sandbox Code Playgroud)

join

join :: t (t a) -> t a
join = extract
Run Code Online (Sandbox Code Playgroud)

但我不能写fmap,也不pure

因此,这有点像“单子”,有点像“共鸣”,但是没有fmap

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

我查看了各种受约束的仿函数样式的程序包,但它们似乎也都受约束(<*>),但就我而言(<*>),不受约束。

是否可以将这种类型转换为现有的类型类?

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