úÎ5¶3X     None+An exception thrown when a   is invalid.-A datatype that represents a mapping between Paths and tys. Note that unlike Encoding s, not all Paths are necessarily valid. Convert a ty to a Path&Convert to a list of pairs, where the fst holds the path entry, and snd holds  numBranches9. This is used primarily for encoding values as binary. Generate a ty from a Path7Given a prefix path, get an enumeration that generates tys from the rest of the path. @Get the upper bound on values for the first path component, or Nothing if there is no bound. The prefix path. .A path that uniquely identifies a value in an  Enumeration.  Create an \ with an empty prefix that maps a single value to and from the empty path. Equivalent to singletonWithPrefix []  Create an O with a given prefix path that maps a single value to and from the empty path. Create an % with an empty prefix from a single . The  = will always be of length 1, and contains the encoded value. Create an $ with a given prefix from a single . The  = will always be of length 1, and contains the encoded value. Create an $ with an empty prefix that uses an e to convert the first element of the path to an interim value, then uses that value to construct an ! to decode the rest of the path. Create an  with a prefix that uses an f to convert the first element of the path to an interim value, then uses that value to construct an ! to decode the rest of the path.  ,The value to map to and from the empty path. The  to use The encoding for the first type.<A function that produces an enumeration from the first type.8A function that extracts the first type from the second.The prefix path.The  for the first type.<A function that produces an enumeration from the first type.8A function that extracts the first type from the second. !       !NoneUse an  to write out a ty as binary dataUse an  to extract a ty from binary data."#"#None@A typeclass representing a traversal scheme over an enumeration. Create a  Traversal from an  Enumeration.#Get the next item in the traversal.)Get all items in the traversal as a list.None|Prioritized traversal. Will always pick the highest-scored option. Completeness depends entirely on the scoring function.The scoring function used in a  traversal scheme.ÎBreadth-first traversal. This style of traversal is guaranteed to be complete- that is, it will visit every possibility eventually. However, it may take a very long time to reach any given possibility.ÿ.Depth-first traversal. Note that this style of traversal is not guaranteed to be complete (it may deep-dive and never visit some possibilities). However, this implementation should continue producing results even with infinite-sized branches, so long as the depth of any one path isn't too great.=Create a prioritized traversal with a given scoring function.$%&'()The scoring function to use.The enumeration to use.*+,-  $%&'()*+,-.      !" #$%&'() *+,-./enumeration-0.1.0Data.EnumerationData.Enumeration.BinaryData.Enumeration.Traversal Data.Enumeration.Traversal.Classarith-encode-0.7.0Data.ArithEncode.BasicIllegalArgumentBadPath EnumerationtoPath toSizedPathfromPath withPrefix numBranchesprefixPath singletonsingletonWithPrefix fromEncodingfromEncodingWithPrefixstepstepWithPrefixputWithEnumerationgetWithEnumeration Traversal mkTraversalgetNextgetAll Prioritizedscoring BreadthFirst DepthFirstmkPrioritizedTraversalEncodingshowPath$fExceptionBadPath $fShowBadPath putNatural getNaturalpriHeapbfQueuedfStack inverseDepth$fTraversalPrioritized$fTraversalBreadthFirst$fTraversalDepthFirst