Optics for F#


Hopefully you’re here because you’re interested in Aether, an open source optics (lenses, prisms, etc.) library for F#. You might simply want to start with this:

PM> Install-Package Aether

If you’d like a bit more information however, we’ve got you covered.


If you want to ask any questions on Aether, or have suggestions, please come along and chat in the Aether Room.


If you’re not familiar with lenses and related ideas in functional programming, you probably want to start with the Guides which will take you through an introduction (including motivations and key ideas), all the way to being comfortable with using Aether.

The Guides section also has a handy section of links to other places discussing lenses, etc. if you want to dig further in, or explore how Aether compares with other language implementations.


If you’re already familiar with lenses and other optics in functional programming, you probably want to head straight to the Reference, or even just grab the Packages and get started.


Contributions in any form are welcome. The easiest way to contribute is via the main Git repository, detailed in Source.


For updates to Aether, including releases, new tutorials, reference documentation, etc. keep an eye on Updates and follow xyncro/tech on Twitter.


Aether is a much more useful and well designed/tested library now than it was, which owes much to the work of various people (both code and ideas/suggestions). Particular gratitude must go to Marcus Griep for his contributions, which have made Aether more reliable and useful.