Hoogle Search

Within LTS Haskell 24.36 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. getVarID :: Variable v => v -> Int

    unification-fd Control.Unification

    Return a unique identifier for this variable, in order to support the use of visited-sets instead of occurs-checks. This function must satisfy the following coherence law with respect to the Eq instance: x == y if and only if getVarID x == getVarID y

  2. module Control.Unification.IntVar

    This module defines a state monad for functional pointers represented by integers as keys into an IntMap. This technique was independently discovered by Dijkstra et al. This module extends the approach by using a state monad transformer, which can be made into a backtracking state monad by setting the underlying monad to some MonadLogic (part of the logict library, described by Kiselyov et al.).

    • Atze Dijkstra, Arie Middelkoop, S. Doaitse Swierstra (2008) Efficient Functional Unification and Substitution, Technical Report UU-CS-2008-027, Utrecht University.
    • Oleg Kiselyov, Chung-chieh Shan, Daniel P. Friedman, and Amr Sabry (2005) Backtracking, Interleaving, and Terminating Monad Transformers, ICFP.

  3. newtype IntVar

    unification-fd Control.Unification.IntVar

    A "mutable" unification variable implemented by an integer. This provides an entirely pure alternative to truly mutable alternatives (like STVar), which can make backtracking easier. N.B., because this implementation is pure, we can use it for both ranked and unranked monads.

  4. IntVar :: Int -> IntVar

    unification-fd Control.Unification.IntVar

    No documentation available.

  5. module Control.Unification.Ranked.IntVar

    A ranked variant of Control.Unification.IntVar.

  6. newtype IntVar

    unification-fd Control.Unification.Ranked.IntVar

    A "mutable" unification variable implemented by an integer. This provides an entirely pure alternative to truly mutable alternatives (like STVar), which can make backtracking easier. N.B., because this implementation is pure, we can use it for both ranked and unranked monads.

  7. IntVar :: Int -> IntVar

    unification-fd Control.Unification.Ranked.IntVar

    No documentation available.

  8. module Control.Unification.Ranked.STVar

    A ranked variant of Control.Unification.STVar.

  9. module Control.Unification.STVar

    This module defines an implementation of unification variables using the ST monad.

  10. data STVar s (t :: Type -> Type)

    unification-fd Control.Unification.STVar

    Unification variables implemented by STRefs. In addition to the STRef for the term itself, we also track the variable's ID (to support visited-sets).

Page 116 of many | Previous | Next