AZ
Size: a a a
AZ
r
for<T: ?Sized> <T as Object>::Output: 'static
, так как есть blanket implementation. С другой стороны <dyn Object<Output=&'a u64> as Object>::Output == 'a
, потому что так сказали. То, что конкретных типов, подходящих под dyn Object<Output=&'a u64>
быть не может, не учитывается.Ct
Ct
transmute_lifetime
r
trait Object {
type Output: 'static;
}
dyn Object<Output = ...>
вообще не проверяется, что-ли?Ct
P
S.repeatM (T.hGetLine iHandle)вот нетормозящий вариант
>>= splitColumns
& S.fold (SF.drainBy $ T.hPutStr oHandle)
& serially
& S.drain
& handleEof
where
splitColumns = S.fromList . fmap (<> "\n") . T.split (== ',')
λ
P
λ
λ
a,b,c
d,e,f
->
a
b
c
d
e
f
λ
λ
P
λ
fmap (<> "\n")
λ
map (<> "\n")
, ибо там обычный списокAZ
fmap (<> "\n")
P
fmap (<> "\n")
λ
String -> String -> String
, а String
тормозной, его никто не используетAZ
String -> String -> String
, а String
тормозной, его никто не использует