3.4
Closed Nov 22, 2012
100% complete
3.4
- Renamed
(%)
to(&)
and(^%)
to(^&)
. This avoids the conflict withData.Ratio
, which was our highest priority conflict with a third party library. - Switched to a more liberal type for
ignored
- Removed some "
isplitting
" bad combinators fromControl.Lens.IndexedFold
. - Made
indexed
,taking
, anddropping
andelementOf
lazier and capable of dealing with infi…
3.4
- Renamed
(%)
to(&)
and(^%)
to(^&)
. This avoids the conflict withData.Ratio
, which was our highest priority conflict with a third party library. - Switched to a more liberal type for
ignored
- Removed some "
isplitting
" bad combinators fromControl.Lens.IndexedFold
. - Made
indexed
,taking
, anddropping
andelementOf
lazier and capable of dealing with infinite traversals and infinite folds. - Improved
Indexing
to support infinite traversals and folds. - Removed some of the more redundant combinators from
Control.Lens.Plated
, which already had existing aliases in the rest of the traversal API. - Moved
partsOf
,holesOf
, andelementOf
intoControl.Lens.Traversal
. - Renamed
query
toperuse
andqueries
toperuses
. These are much less contentious names,
both containuse
in their name for analogy touse
anduses
and the word is about reading. - Simpler
simple
. - Added
enum
andnon
toControl.Lens.Iso
. - Added
(^?!)
toControl.Lens.Fold
for unsafe access to the head of aFold
. - Changed
_head
,_tail
,_init
and_last
to traversals inData.List.Lens
andData.Sequence.Lens
. - Eliminated
traverseHead
,traverseTail
,traverseInit
andtraverseLast
. partsOf
andunsafePartsOf
can now also be applied to aFold
yielding aGetter
or to aMonadicFold
yielding anAction
.
3.3
- Redefined
simple
and moved it toControl.Lens.Iso
. Instead of usingsimple l
you can now composel.simple
orsimple.l
providing more nuanced control and a more compositional API. - Moved the various
foo#
combinators used to emit cleaner core into an unexported module,Control.Lens.Unsafe
. This removesMagicHash
from the public API. - Removed the
bazaar#
andrunBazaar#
coercions that caused issues on GHC HEAD. - Changed the default definition of
plate
touniplate
fromignored
. - Added
Data.Vector.Lens
and instances forData.Vector
. - Added support for the
split
package, which is now part of the Haskell platform. - Removed redundant
Data.List.traverseList
. Useitraversed
ortraverse
instead. - Moved
(:<->)
toControl.Lens.Simple
. - Fixed a bug in
Control.Lens.TH
that was causingmakeIso
not to work. - Added
lifted
toControl.Lens.Setter
for mapping over monads. - Added
beside
toControl.Lens.Traversal
. - Removed the operators from
Data.List.Lens
, they broke the overall pattern of the rest of the API, and were terrible clutter. - Fixed a bug that caused
resultAt
to give wrong answers most of the time. - Changed
resultAt
to anIndexedLens
and moved it toControl.Lens.IndexedLens
- Changed
ignored
to anIndexedTraversal
and moved it toControl.Lens.IndexedTraversal
3.2
- Made
elementOf
lazier and moved it fromControl.Lens.Traversal
toControl.Lens.Plated
. - Made
holesOf
andpartsOf
lazier to deal with infinite structures. - Resolved issue #75. We now generate nicer core for most
Setter
andFold
operations, and some others. - Made lenses for field access like
_1
,_2
, etc. lazier. - Added
Control.Lens.Loupe
, which provides a limited form ofLens
that can be read from and written to and which can compose
with other lenses, but can also be returned in a list or as a monadic result, but cannot be used directly for most combinators
without cloning it first. It is easier to compose than aReifiedLens
, but slightly slower. - Moved (
:=>
) and (:->
) intoControl.Lens.Simple
, which is not exported byControl.Lens
by default to reduce name conflicts with third party libraries.
3.1
- Simplified the type of
filtered
, so that it can be composed with other folds rather than be parameterized on one. Included the caveat that the newfiltered
is still not a legalTraversal
, despite seeming to compose like one. - Renamed
ifiltered
toifiltering
, and while it still must take an indexed lens-like as an argument, I included a similar caveat about the result not being a legalIndexedLens
when given anIndexedLens
. The function was renamed because its signature no longer lined up with the newfiltered
and the gerundive '-ing' suffix has come to indicate an operator that transformers another lens/traversal/etc. into a new one. - Added
taking
anddropping
toControl.Lens.Traversal
.
This milestone is closed.
No open issues remain. View closed issues or see open milestones in this repository.