Interface for the sequencing of different types of optics.
The kind of optic we get as a result is determined by the kinds of optics
we sequence. For instance, sequencing a Lens with a Prism results in
an Optional, while sequencing with an Iso does preserve an optic's type.
Parameters: k, l, m
Methods:
seq : k s t a b -> l a b c d -> m s t c d
Implementations:
OSeq Iso Iso Iso OSeq Iso Lens Lens OSeq Iso Prism Prism OSeq Iso Optional Optional OSeq Iso Traversal Traversal OSeq Iso Getter Getter OSeq Iso Setter Setter OSeq Iso Fold Fold OSeq Lens Lens Lens OSeq Lens Iso Lens OSeq Lens Prism Optional OSeq Lens Optional Optional OSeq Lens Traversal Traversal OSeq Lens Getter Getter OSeq Lens Setter Setter OSeq Lens Fold Fold OSeq Prism Prism Prism OSeq Prism Iso Prism OSeq Prism Lens Optional OSeq Prism Optional Optional OSeq Prism Traversal Traversal OSeq Prism Getter Fold OSeq Prism Setter Setter OSeq Prism Fold Fold OSeq Optional Optional Optional OSeq Optional Iso Optional OSeq Optional Lens Optional OSeq Optional Prism Optional OSeq Optional Traversal Traversal OSeq Optional Getter Fold OSeq Optional Setter Setter OSeq Optional Fold Fold OSeq Traversal Traversal Traversal OSeq Traversal Iso Traversal OSeq Traversal Lens Traversal OSeq Traversal Prism Traversal OSeq Traversal Optional Traversal OSeq Traversal Getter Fold OSeq Traversal Setter Setter OSeq Traversal Fold Fold OSeq Setter Setter Setter OSeq Setter Iso Setter OSeq Setter Lens Setter OSeq Setter Prism Setter OSeq Setter Optional Setter OSeq Setter Traversal Setter OSeq Getter Getter Getter OSeq Getter Iso Getter OSeq Getter Lens Getter OSeq Getter Prism Fold OSeq Getter Optional Fold OSeq Getter Traversal Fold OSeq Getter Fold Fold OSeq Fold Fold Fold OSeq Fold Iso Fold OSeq Fold Lens Fold OSeq Fold Prism Fold OSeq Fold Optional Fold OSeq Fold Traversal Fold OSeq Fold Getter Fold