anchor.diff:      let (.->) l s = set  l s
       let (%->) l s = over l s
       let (^?)  s l = preview  l s
  -    let (^..) s l = toListOf l s
  -
  -
  -   +    let (^..) s l = toListOf l s
positive.code: open FSharpPlus.Operators
  
  module Lens =
  
      // Basic operations
      let set  lens v = Identity.run << lens (fun _ -> Identity v)
  
negative.code:     let inline lens sa sbt afb s = sbt s <!> afb (sa s)
  
  
      /// Build a Prism using Choice instead of Option to permit the types of 's and 't to differ.
      let inline prism (bt:'b->'t) (seta:'s->Choice<'a,'t>) = dimap seta (choice result (map bt)) << (fun g -> choice Choice2Of2 (Choice1Of2 << g))
      let inline prism' (bs:'b->'s) (sma:'s->Option<'a>) = prism bs (fun s -> option (Choice2Of2 s) Choice1Of2 (sma s))
  
  