@@ -356,7 +356,7 @@ def modifyM [Monad m] (xs : Array α) (i : Nat) (f : α → m α) : m (Array α)
356356
357357@[inline]
358358def modify (xs : Array α) (i : Nat) (f : α → α) : Array α :=
359- Id.run <| modifyM xs i f
359+ Id.run <| modifyM xs i (pure <| f ·)
360360
361361set_option linter.indexVariables false in -- Changing `idx` causes bootstrapping issues, haven't investigated.
362362@[inline]
@@ -646,11 +646,11 @@ def forRevM {α : Type u} {m : Type v → Type w} [Monad m] (f : α → m PUnit)
646646
647647@[inline]
648648def foldl {α : Type u} {β : Type v} (f : β → α → β) (init : β) (as : Array α) (start := 0 ) (stop := as.size) : β :=
649- Id.run <| as.foldlM f init start stop
649+ Id.run <| as.foldlM (pure <| f · ·) init start stop
650650
651651@[inline]
652652def foldr {α : Type u} {β : Type v} (f : α → β → β) (init : β) (as : Array α) (start := as.size) (stop := 0 ) : β :=
653- Id.run <| as.foldrM f init start stop
653+ Id.run <| as.foldrM (pure <| f · ·) init start stop
654654
655655/-- Sum of an array.
656656
@@ -669,19 +669,19 @@ def count {α : Type u} [BEq α] (a : α) (as : Array α) : Nat :=
669669
670670@[inline]
671671def map {α : Type u} {β : Type v} (f : α → β) (as : Array α) : Array β :=
672- Id.run <| as.mapM f
672+ Id.run <| as.mapM (pure <| f ·)
673673
674674instance : Functor Array where
675675 map := map
676676
677677/-- Variant of `mapIdx` which receives the index as a `Fin as.size`. -/
678678@[inline]
679679def mapFinIdx {α : Type u} {β : Type v} (as : Array α) (f : (i : Nat) → α → (h : i < as.size) → β) : Array β :=
680- Id.run <| as.mapFinIdxM f
680+ Id.run <| as.mapFinIdxM (pure <| f · · ·)
681681
682682@[inline]
683683def mapIdx {α : Type u} {β : Type v} (f : Nat → α → β) (as : Array α) : Array β :=
684- Id.run <| as.mapIdxM f
684+ Id.run <| as.mapIdxM (pure <| f · ·)
685685
686686/-- Turns `#[a, b]` into `#[(a, 0), (b, 1)]`. -/
687687def zipIdx (xs : Array α) (start := 0 ) : Array (α × Nat) :=
@@ -699,7 +699,7 @@ def find? {α : Type u} (p : α → Bool) (as : Array α) : Option α :=
699699
700700@[inline]
701701def findSome? {α : Type u} {β : Type v} (f : α → Option β) (as : Array α) : Option β :=
702- Id.run <| as.findSomeM? f
702+ Id.run <| as.findSomeM? (pure <| f ·)
703703
704704@[inline]
705705def findSome! {α : Type u} {β : Type v} [Inhabited β] (f : α → Option β) (xs : Array α) : β :=
@@ -709,11 +709,11 @@ def findSome! {α : Type u} {β : Type v} [Inhabited β] (f : α → Option β)
709709
710710@[inline]
711711def findSomeRev? {α : Type u} {β : Type v} (f : α → Option β) (as : Array α) : Option β :=
712- Id.run <| as.findSomeRevM? f
712+ Id.run <| as.findSomeRevM? (pure <| f ·)
713713
714714@[inline]
715715def findRev? {α : Type } (p : α → Bool) (as : Array α) : Option α :=
716- Id.run <| as.findRevM? p
716+ Id.run <| as.findRevM? (pure <| p ·)
717717
718718@[inline]
719719def findIdx? {α : Type u} (p : α → Bool) (as : Array α) : Option Nat :=
@@ -785,11 +785,11 @@ def getIdx? [BEq α] (xs : Array α) (v : α) : Option Nat :=
785785
786786@[inline]
787787def any (as : Array α) (p : α → Bool) (start := 0 ) (stop := as.size) : Bool :=
788- Id.run <| as.anyM p start stop
788+ Id.run <| as.anyM (pure <| p ·) start stop
789789
790790@[inline]
791791def all (as : Array α) (p : α → Bool) (start := 0 ) (stop := as.size) : Bool :=
792- Id.run <| as.allM p start stop
792+ Id.run <| as.allM (pure <| p ·) start stop
793793
794794/-- `as.contains a` is true if there is some element `b` in `as` such that `a == b`. -/
795795def contains [BEq α] (as : Array α) (a : α) : Bool :=
@@ -886,7 +886,7 @@ def filterMapM [Monad m] (f : α → m (Option β)) (as : Array α) (start := 0)
886886
887887@[inline]
888888def filterMap (f : α → Option β) (as : Array α) (start := 0 ) (stop := as.size) : Array β :=
889- Id.run <| as.filterMapM f (start := start) (stop := stop )
889+ Id.run <| as.filterMapM (pure <| f ·) (start := start) (stop := stop )
890890
891891@[specialize]
892892def getMax? (as : Array α) (lt : α → α → Bool) : Option α :=
0 commit comments