Y
foldl1 adjoin [ix "fieldA", ix "fieldB"]
, но типы не дают?foldMap ix ["fieldA", "fieldB"]
, если типы геттеров одинаковыеSize: a a a
Y
foldl1 adjoin [ix "fieldA", ix "fieldB"]
, но типы не дают?foldMap ix ["fieldA", "fieldB"]
, если типы геттеров одинаковыеY
KV
KV
fold [ix "fieldA", ix "fieldB"]
Вот так-то да, но мне кажется, что это работает только для фолдовKV
KV
KV
let adjoinAll =
cloneTraversal
. foldl1 (\t1 t2 -> adjoin (cloneTraversal t1) (cloneTraversal t2)) in
"{\"a\":1,\"b\":2}" & partsOf (_Value . (adjoinAll [ix "a", ix "b"]) . _Number) .~ [2,3]
AP
MK
AP
AP
MK
MK
MK
AP
MK
instance FromMultipart Mem UploadCheckForm where
fromMultipart form =
let
val = UploadCheckForm
<$> liftError (const ["file"]) (fdToFileInfo <$> lookupFile "file" form)
<*> ....
in
case val of
Success ucf -> Right ucf
-- Ugly as hell :/
Failure fields -> Left $ unwords fields
MK
AP