S
Size: a a a
S
S
S
S
S
с
К
Filterable
всё понятно:filter :: Filterable f => f a ~> (a -> Boolean) -> f a
С другой стороны, в реальноё жизни тип результата можно уточнить:type Filterable<T> = {
filter<P: $Pred<1>>(predicate: P): Maybe<
$Refine<T, P, 1>
>;
};
declare var value: Filterable<1 | 2 | 3>;
value.filter((v): %checks => v === 1);
// Filterable<1>
Насколько это законно? =)S
S
S
S
S
S
S
S
S
m
m