co jest ogólnym terminem dla funktora o strukturze przypominającej promote
funkcji QuickCheck'S, czyli funkcji postaci:Jaki jest ogólny przypadek funkcji promującej QuickCheck?
promote :: (a -> f b) -> f (a -> b)
(to odwrotność flip $ fmap (flip ($)) :: f (a -> b) -> (a -> f b)
). Czy są jakieś funktory z taką operacją, inne niż (->) r
i Id
? (Jestem pewien, że musi być). Googling "quickcheck promot" tylko pojawił się dokumentacja QuickCheck, która nie daje promote
w bardziej ogólnym kontekście AFAICS; wyszukiwanie SO dla "promocji quickcheck" nie daje wyników.
Czy ['sequenceA'] (http://hackage.haskell.org/package/base-4.7.0.1/docs/Data-Traversable.html#v:sequenceA) jest odpowiedni? –
Pozwól mi zobaczyć. Zastępując w typie 'sequenceA', otrzymalibyśmy' t = (->) a' i 'f = f'. Więc jeśli '(->) a' miał instancję' Traversalable', ta funkcja istniałaby dla wszystkich 'a'. Myślę, że 'Traversable ((->) a)' wymaga '(Bounded a, Enum a)' lub równoważnego. –
Co to jest warte, rodzina pakietów [wszechświat] (http://hackage.haskell.org/package/universe) zapewnia wymaganą instancję 'Traversable' (http://hackage.haskell.org/package/universe) -reverse-instances-1.0/docs/src/Data-Universe-Instances-Traversable.html). –