with one click
microlens
Replace lens with microlens-* in Haskell packages
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Replace lens with microlens-* in Haskell packages
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Guides for Haskell code. Use when writing Haskell code.
Security audit checklist for Rust code. Use when auditing Rust code for security vulnerabilities.
Re-generate Cabal freeze files.
Improve performance of Haskell code. Use when asked to profile or improve performance.
Reviews Haskell comments for Haddock markup opportunities. Use when reviewing or improving Haskell documentation comments.
Remove extraneous comments. Use when the user requests removing comments.
| name | microlens |
| description | Replace lens with microlens-* in Haskell packages |
Replace lens with the appropriate microlens-* packages. Work one package at
a time, committing each in dependency order (dependencies before dependents). No
co-author metadata in commit messages.
| Module | microlens package |
|---|---|
Lens.Micro | microlens |
Lens.Micro.Extras | microlens |
Lens.Micro.FieldN | microlens |
Lens.Micro.GHC | microlens-ghc |
Lens.Micro.Mtl | microlens-mtl |
Lens.Micro.TH | microlens-th |
Lens.Micro(^.), (^?), (.~), (%~), (^..), lens, to, _Just, _Left,
_Right, each, Lens', Traversal', Traversal, Getting, ASetter,
at, ix, and (&) when imported alongside other Lens.Micro symbols.
Lens.Micro.FieldN (package: microlens)_1, _2, _3, etc. — tuple field lenses. These are not re-exported
by Lens.Micro and must be imported from Lens.Micro.FieldN directly.
Lens.Micro.GHCNo new symbols — add this import (and microlens-ghc to build-depends)
when using at or ix with Map, IntMap, Set, Seq, or
ByteString, to bring the required instances into scope. Do not use
for Vector.
Lens.Micro.Mtluse, (.=), (%=), (+=), zoom, and view when used
monadically (i.e. in a MonadReader or state-transformer context).
Lens.Micro.Extrasview when used purely (non-monadic), preview.
Lens.Micro.THmakeLenses.
Data.Function(&) when it is the only symbol being imported — never put a
lone (&) import into Lens.Micro.
import Lens.Micro
without a symbol list.Control.Lens was imported qualified, do the same for Lens.Micro.*.Lens.Micro.* import in the same stanza that Control.Lens was in.(^.) with view or vice-versa. Leave operator usage
as-is.lens from build-depends in every .cabal file.microlens-* packages are actually used.lens for transitive
re-exports, verify no symbols are now missing after the swap.lens, sorted so dependencies
come first..cabal build-depends.
b. Update every Haskell source file's imports following the rules
above.
c. Build and fix any remaining type errors.
d. Commit with a concise message (no co-author line).