úÎ)­%ãG      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF;Final tagless encoding of multivariant assignments language0(c) Anton Marchenko, Mansur Ziatdinov, 2016-2017BSD-3gltronred@gmail.com provisionalPOSIXSafe%&9;QR Embed program into arrowProgram that has description Supply description for some step3Program that has properties (*not implemented yet*)%Supply precondition and postconditionProgram that has corner cases!Supply corner cases for some step Program that can be inverted  Inversion +Program provides the most common operations One step of transformationSimple wrapper around '( +++)'        Interpreter for corner cases0(c) Anton Marchenko, Mansur Ziatdinov, 2016-2017BSD-3gltronred@gmail.com provisionalPOSIXSafe9;QRType of interpreter+Get a list of corner cases for each variant Interpreter>List (for each variant) of lists of pairs of input and output. !" "!   !"Interpreter for description0(c) Anton Marchenko, Mansur Ziatdinov, 2016-2017BSD-3gltronred@gmail.com provisionalPOSIXSafe#Type for interpreter&Get a list of texts of variants#$%&'()#$%&#$%&)('#$%&'()Interpreter for solution0(c) Anton Marchenko, Mansur Ziatdinov, 2016-2017BSD-3gltronred@gmail.com provisionalPOSIXSafeQR*Type for interpreter-@Extract a list of solutions (functions that map input to output)*+,-./01*+,-*+,-10/.*+,-./01Intepreters for language0(c) Anton Marchenko, Mansur Ziatdinov, 2016-2017BSD-3gltronred@gmail.com provisionalPOSIXSafe#&*-#&*-Safe9;QR2Class 2 represents a profunctor from Iso -> Hask (?) 3 G G "a G  4 G "a G 5 G "a G  3 f g "a 4 f H 5 g 3 (f H g) (h H i) "a 3 g h H 3 f i 4 (f H g) "a 4 g H 4 f 5 (f H g) "a 5 f H 5 g 2345625432345623456Safe9;QR7 Generalizing Star of a strong INote: Every I& in Haskell is strong with respect to (,).RThis describes profunctor strength with respect to the product structure of Hask. <http://www-kb.is.s.u-tokyo.ac.jp/~asada/papers/arrStrMnd.pdf789:789789:789:SafeAOQRT ;<=>?@ABCDEF;=<>?@ ;<=>FEDC?@BA ;<=>?@ABCDEF= J       !"#$%&'())*+,-.//0123456789:;<=>?@ABCDEFGHIJKLMKLNOPQR+multivariant-0.1.0.1-JeEpNFyWoJ761XZPR5h73gTest.Multivariant.ClassesTest.Multivariant.Types.Cases#Test.Multivariant.Types.Description Test.Multivariant.Types.SolutionData.Invertible.ProfunctorData.Invertible.StrongControl.Invertible.BiArrow.FreeTest.Multivariant.Types ProgramArrow getProgramWithDescriptionwithDescriptionWithConditionswithConditionsWithCornerCaseswithCornerCases WithInvertinvertProgramstep~><***><+++>oneof$fArrowProgramArrow$fCategoryTYPEProgramArrow$fSemigroupoidTYPEProgramArrowCasesunCasesCase caseTransform caseCornergetCasesafterprod appendCases$fWithDescriptionCases$fWithInvertCases$fWithCornerCasesCases$fProgramCases DescriptionvariantsgetDescription$fWithDescriptionDescription$fWithCornerCasesDescription$fProgramDescriptionSolution solutions getSolutions$fWithDescriptionSolution$fWithCornerCasesSolution$fWithInvertSolution$fProgramSolution IsoProfunctordimaplmaprmap$fIsoProfunctorBijection IsoStrongfirst'second'$fIsoStrongBijectionFreeAPureP:-nilrevinvgo$fBiArrowFreeA$fGroupoidTYPEFreeA$fCategoryTYPEFreeA$fSemigroupoidTYPEFreeA$fIsoStrongFreeA$fIsoProfunctorFreeA'invertible-0.1.2-1Zr2psOhMJQKVScbVIruzuData.Invertible.Functionid.baseGHC.BaseFunctor