Czy uważasz, że wolny transformator pośredniczący jest możliwy? Coś takiego, jak ta ciekawość, którą uważam za przydatną, nie jest tylko ciekawostką.Czy istnieje bezpłatny transformator pośredniczący?
7
A
Odpowiedz
2
To nie jest odpowiedź, ale nie mieści się w komentarzu.
Chciałbym również podobną funkcjonalność. Podejrzewam, że rodzaj wewnętrznej będzie wyglądać następująco:
-- The same `FreeF` type from the `free` package in `Control.Monad.Trans.Free`
data FreeF f a x = Pure a | Free (f x)
newtype FreeP f p a' a b' b m r
= FreeP { unFreeP ::
p a'
(FreeF f a (FreeP f p a' a b' b m r))
b'
(FreeF f b (FreeP f p a' a b' b m r))
m
(FreeF f r (FreeP f p a' a b' b m r)) }
Ponadto, może nie być możliwe z obecnie istniejących maszyn, ale to jest w porządku. Na przykład sprawdź transformator pośredniczący StateP
, który opiera się na thread_P
z ProxyInternal
. Podobny analog do thread_P
może być niezbędny do implementacji FreeP
.