smash-optics-0.1.0.0: Optics for the `smash` library using `optics-core`

Copyright(c) 2020 Emily Pillmore
LicenseBSD-style
MaintainerEmily Pillmore <emilypi@cohomolo.gy>
StabilityExperimental
PortabilityFlexibleInstances, MPTC, Type Families, UndecideableInstances
Safe HaskellNone
LanguageHaskell2010

Data.Can.Optics

Contents

Description

Prisms and Traversals for the Can datatype.

Synopsis

Prisms

_Non :: Prism' (Can a b) () Source #

A Prism' selecting the Non constructor.

Note: cannot change type.

_One :: Prism' (Can a b) a Source #

A Prism' selecting the One constructor.

Note: cannot change type.

_Eno :: Prism' (Can a b) b Source #

A Prism' selecting the Eno constructor.

Note: cannot change type.

_Two :: Prism' (Can a b) (a, b) Source #

A Prism' selecting the Two constructor.

Note: cannot change type.

Traversals

oneing :: Traversal (Can a c) (Can b c) a b Source #

A Traversal of the first parameter, suitable for use with Optics.

enoing :: Traversal (Can a b) (Can a c) b c Source #

A Traversal of the second parameter, suitable for use with Optics.

twoed :: Traversal' (Can a b) (a, b) Source #

A Traversal of the pair, suitable for use with Optics.

Note: cannot change type.

twoing :: Traversal (Can a a) (Can b b) a b Source #

A Traversal of the pair ala both, suitable for use with Optics.

Orphan instances

Swapped Can Source # 

Methods

swapped :: Iso (Can a b) (Can c d) (Can b a) (Can d c)

((~) * a a', (~) * b b') => Each (Maybe Bool) (Can a a') (Can b b') a b Source # 

Methods

each :: IxTraversal (Maybe Bool) (Can a a') (Can b b') a b