!       A total mapp(c) Ed Wastell, 2018MTLedward@wastell.com experimentalNone&'-=>?@AHSVX STotalMapA ( is a total mapping from some enum type tag to some value a9: it is isomorphic to `tag -> a`. It uses a generics-sop 9 array to store all values, ensuring that every value of tag! must have a corresponding value.TotalMap-Generate all constructors for some enum type.TODO: This uses undefined internally as I can not convince the type checker that every constructor has no arguments. This shouldn't be an issue, but feels unsafe so probably should be changedTotalMapA < where each value is its own key. This is the equivalent of .TotalMapExtract a value out of a TotalMapReplace a value inside a TotalMapA Lens into a value of a      'TotalMap-0.1.0.0-AczOFrP3UyN5d6ihRnhmXyTotalMap+generics-sop-0.4.0.1-50QtUhSPhiXGrcY9j3QNt9Generics.SOP.Universe IsEnumTypegenerateAllConstructorsallTags getTotalMap setTotalMapixTotal$fShowTotalMap$fShow1TotalMap $fEqTotalMap $fEq1TotalMap$fRepresentableTotalMap$fDistributiveTotalMap!$fTraversableWithIndextagTotalMap$fTraversableTotalMap$fFoldableWithIndextagTotalMap$fFoldableTotalMap$fMonadTotalMap$fApplicativeTotalMap$fFunctorWithIndextagTotalMap$fFunctorTotalMap'sop-core-0.4.0.0-F1xCWaFkXPd3dWDWBPXHJg Data.SOP.NPNPbaseGHC.Baseid