AV
Size: a a a
AV
AV
{-# LANGUAGE DerivingVia #-}
import Data.Semigroup.Generic
data Pair a = MkPair a a
deriving (Semigroup, Monoid) via (GenericSemigroupMonoid (Pair a))
AV
resolveFooId :: Foo -> IO (Either ResolveError FooId)
, если нужно зарезолвить много, то можно написать partitionEithers <$> traverse resolveFooId foos
, оно зарезолвит всё.resolveFooIds :: [Foo] -> IO [Either ResolveError FooId]
вот можно ли какой-то магией превратить первое во второе для тех реализаций, которые это умеют?AV
AV
KV
resolveFooId :: Foo -> IO (Either ResolveError FooId)
, если нужно зарезолвить много, то можно написать partitionEithers <$> traverse resolveFooId foos
, оно зарезолвит всё.resolveFooIds :: [Foo] -> IO [Either ResolveError FooId]
вот можно ли какой-то магией превратить первое во второе для тех реализаций, которые это умеют?KV
AV
KV
LO
VD
AV
KV
LO
AV
KV
AV
LO