Îõ³h&ëÜ6      !"#$%&'()*+,-./012345Patrick Bahr, 2010 BSD-3-ClausePatrick Bahr, Andreas Abelstablenon-portable (MPTC)NoneÁ ¥ equivalenceîThis is the top-level data structure that represents an equivalence relation. An equivalence relation of type  s c a% lives in the state space indexed by s1, contains equivalence class descriptors of type c and has elements of type a.  equivalence1Abstract representation of an equivalence class.  equivalenceÀThis function constructs the initial data structure for maintaining an equivalence relation. That is, it represents the finest (or least) equivalence class (of the set of all elements of type aÅ). The arguments are used to maintain equivalence class descriptors.  equivalenceÐThis function provides the equivalence class the given element is contained in.  equivalence•This function combines all equivalence classes in the given list. Afterwards all elements in the argument list represent the same equivalence class!  equivalenceÊThis function combines the two given equivalence classes. Afterwards both arguments represent the same equivalence class! One of it is returned in order to represent the new combined equivalence class.  equivalence�This function equates the element in the given list. That is, it unions the equivalence classes of the elements and combines their descriptor.  equivalenceŒThis function equates the two given elements. That is, it unions the equivalence classes of the two elements and combines their descriptor.  equivalenceÅThis function returns the descriptor of the given equivalence class.  equivalenceÏThis function returns the descriptor of the given element's equivalence class.  equivalenceÎThis function decides whether the two given equivalence classes are the same.  equivalence“This function decides whether the two given elements are in the same equivalence class according to the given equivalence relation representation.  equivalenceäThis function removes the given equivalence class. If the equivalence class does not exist anymore, False is returned; otherwise True.  equivalenceòThis function removes the equivalence class of the given element. If there is no corresponding equivalence class, False is returned; otherwise True.  equivalenceËThis function returns all values represented by some equivalence class.  equivalence>This function returns the list of all equivalence classes.  equivalenceÈUsed to construct an equivalence class descriptor for a singleton class. equivalenceâUsed to combine the equivalence class descriptor of two classes which are meant to be combined.    Patrick Bahr, 2010 BSD-3-ClausePatrick Bahr, Andreas Abelstablenon-portable (MPTC with FD)None9>?ÀÁÂÄÉÎÔÖ×Ù¨ equivalenceæThis class specifies the interface for a monadic computation that maintains an equivalence relation.  equivalenceñThis function decides whether the two given elements are equivalent in the current equivalence relation.  equivalence×This function obtains the descriptor of the given element's equivalence class.  equivalence›This function equates the element in the given list. That is, it unions the equivalence classes of the elements and combines their descriptor.  equivalenceõThis function equates the given two elements. That is it unions the equivalence classes of the two elements.  equivalenceøThis function removes the equivalence class of the given element. If there is no corresponding equivalence class, False is returned; otherwise True.  equivalenceÃThis function provides the equivalence class of the given element.  equivalence¡This function combines all equivalence classes in the given list. Afterwards all elements in the argument list represent the same equivalence class!  equivalenceÜThis function combines the two given equivalence classes. Afterwards both arguments represent the same equivalence class! One of it is returned in order to represent the new combined equivalence class.  equivalenceÔThis function decides whether the two given equivalence classes are the same.  equivalenceËThis function returns the descriptor of the given equivalence class.  equivalenceêThis function removes the given equivalence class. If the equivalence class does not exist anymore, False is returned; otherwise True.  equivalenceÎThis function returns all values represented by some equivalence class. equivalenceÁThis function returns the list of all equivalence classes. equivalence This monad is a special case of à that only maintains trivial equivalence class descriptors of type ().  equivalenceèThis monad encapsulates computations maintaining an equivalence relation. A monadic computation of type  s c v a) maintains a state space indexed by type s:, maintains an equivalence relation over elements of type v, with equivalence class descriptors of type c and returns a value of type a.  equivalence,This monad transformer is a special case of !à that only maintains trivial equivalence class descriptors of type (). ! equivalenceôThis monad transformer encapsulates computations maintaining an equivalence relation. A monadic computation of type !  s c v m a) maintains a state space indexed by type s:, maintains an equivalence relation over elements of type v, with equivalence class descriptors of type c6 and contains an internal monadic computation of type m a. $ equivalenceîThis function runs a monadic computation that maintains an equivalence relation. The first two arguments specify how to construct an equivalence class descriptor for a singleton class and how to combine two equivalence class descriptors. % equivalence#This function is a special case of $à that only maintains trivial equivalence class descriptors of type (). & equivalenceîThis function runs a monadic computation that maintains an equivalence relation. The first tow arguments specify how to construct an equivalence class descriptor for a singleton class and how to combine two equivalence class descriptors. ' equivalence#This function is a special case of &à that only maintains trivial equivalence class descriptors of type (). $ equivalenceÈUsed to construct an equivalence class descriptor for a singleton class. equivalenceâUsed to combine the equivalence class descriptor of two classes which are meant to be combined.& equivalenceÈUsed to construct an equivalence class descriptor for a singleton class. equivalenceâUsed to combine the equivalence class descriptor of two classes which are meant to be combined. !"#$%&'!"# $%&'6          !"#$%&'()*+,equivalence-0.4.1-inplaceData.Equivalence.STTData.Equivalence.MonadEquivClass leastEquivgetClass combineAllcombine equateAllequatedesc classDescsame equivalentremove removeClassvaluesclasses MonadEquiv===EquivM'EquivMEquivT'EquivTunEquivT runEquivT runEquivT' runEquivM runEquivM'$fMonadReaderrEquivT$fMonadFailEquivT$fMonadTransEquivT$fMonadEquivcvdReaderT$fMonadEquivcvdStateT$fMonadEquivcvdExceptT$fMonadEquivcvdWriterT$fMonadEquivClassvdEquivT$fFunctorEquivT$fApplicativeEquivT $fMonadEquivT$fMonadErroreEquivT$fMonadStatestEquivT$fMonadWriterwEquivT