HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

ModuleAgda-2.8.0.2Haskell2010

Agda.Mimer.Mimer

This module contains the implementation of Mimer, the current implementation of the auto interactive command (C-c C-a) and the successor of Agsy.

The overall idea is that Mimer gathers a collection of "components" that it could use for building a solution and tries to refine the goal iteratively using these components. Components include global definitions, local variables, let-bound variables, and recursive calls to the function being defined.

Mimer manages multiple branches of the search at the same time and assigns a cost to each branch, which is the sum of the costs of all its components. The cost of a component in turn is determined by its type and the number of new metas it introduces.

A branch can be refined by picking one of its unsolved metavariables and refining it with all available components, resulting in a number of new branches (each one with a higher cost than the original).

Mimer iteratively refines the branch with the lowest cost until it finds a solution or runs out of time.

  • 1 type
  • 1 value
  • PackageAgda-2.8.0.2
  • Exports2
  • LanguageHaskell2010
  • LicenceMIT
  • SourceMimer.hs
datadata MimerResult
#

Constructors

Instances4Generic, NFData, PrettyTCM, Rep
valuemimer
  1. :: MonadTCM tcm
  2. => Rewrite

    Degree of normalization of solution terms.

  3. -> InteractionId

    Hole to run on.

  4. -> Range

    Range of hole (for parse errors).

  5. -> String

    Content of hole (to parametrize Mimer).

  6. -> tcm MimerResult
#

Entry point. Run Mimer on the given interaction point, returning the desired solution(s). Also debug prints timing statistics.