Agda-2.6.1: A dependently typed functional programming language and proof assistant

Agda.Interaction.InteractionTop

Synopsis

# Documentation

Constructors

 Give Refine Intro ElaborateGive
Instances
 Source # Instance detailsDefined in Agda.Interaction.InteractionTop Methods Source # Instance detailsDefined in Agda.Interaction.InteractionTop MethodsshowList :: [GiveRefine] -> ShowS #

Restore both TCState and CommandState.

Restore TCState, do not touch CommandState.

Arguments

 :: MonadState st m => (forall c. m c -> st -> k (c, st)) run -> (forall b. k b -> m b) lift -> (forall x. (m a -> k x) -> k x) -> m a reverse lift in double negative position

Build an opposite action to lift for state monads.

Arguments

 :: MonadTCState m => (forall c. m c -> TCState -> k (c, TCState)) run -> (forall b. k b -> m b) lift -> (forall x. (m a -> k x) -> k x) -> m a reverse lift in double negative position

commandMToIO :: (forall x. (CommandM a -> IO x) -> IO x) -> CommandM a Source #

Opposite of liftIO for CommandM. Use only if main errors are already catched.

liftCommandMT :: (forall x. TCM x -> TCM x) -> CommandM a -> CommandM a Source #

Lift a TCM action transformer to a CommandM action transformer.

liftCommandMTLocalState :: (forall x. TCM x -> TCM x) -> CommandM a -> CommandM a Source #

Ditto, but restore state.

Put a response by the callback function given by stInteractionOutputCallback.

modifyTheInteractionPoints :: ([InteractionId] -> [InteractionId]) -> CommandM () Source #

A Lens for theInteractionPoints.

A Lens for oldInteractionScopes.

Do setup and error handling for a command.

handleCommand :: (forall a. CommandM a -> CommandM a) -> CommandM () -> CommandM () -> CommandM () Source #

Run an IOTCM value, catch the exceptions, emit output

If an error happens the state of CommandM does not change, but stPersistent may change (which contains successfully loaded interfaces for example).

maybeAbort :: (IOTCM -> CommandM a) -> CommandM (Command' (Maybe a)) Source #

If the next command from the command queue is anything but an actual command, then the command is returned.

If the command is an IOTCM command, then the following happens: The given computation is applied to the command and executed. If an abort command is encountered (and acted upon), then the computation is interrupted, the persistent state and all options are restored, and some commands are sent to the frontend. If the computation was not interrupted, then its result is returned.

Arguments

 :: IO Command Returns the next command. -> IO CommandQueue

Creates a command queue, and forks a thread that writes commands to the queue. The queue is returned.

Can the command run even if the relevant file has not been loaded into the state?

Should Resp_InteractionPoints be issued after the command has run?

Interpret an interaction

Solved goals already instantiated internally The second argument potentially limits it to one specific goal.

Arguments

 :: FilePath -> [String] -> Bool Allow unsolved meta-variables? -> Mode Full type-checking, or only scope-checking? -> ((Interface, MaybeWarnings) -> CommandM ()) -> CommandM ()

cmd_load' file argv unsolvedOk cmd loads the module in file file, using argv as the command-line options.

If type checking completes without any exceptions having been encountered then the command cmd r is executed, where r is the result of typeCheckMain.

Set envCurrentPath to theCurrentFile, if any.

Arguments

 :: UseForce Should safety checks be skipped? -> InteractionId -> Range -> String -> GiveRefine -> CommandM ()

A "give"-like action (give, refine, etc).

give_gen force ii rng s give_ref mk_newtxt acts on interaction point ii occupying range rng, placing the new content given by string s, and replacing ii by the newly created interaction points in the state if safety checks pass (unless force is applied).

Sorts interaction points based on their ranges.

Displays the current goal, the given document, and the current context.

Should not modify the state.

Shows all the top-level names in the given module, along with their types.

Shows all the top-level names in scope which mention all the given identifiers in their type.

Explain why something is in scope.

Sets the command line options and updates the status information.

Computes some status information.

Does not change the state.

Does not change the state.

display_info does what display_info' False does, but additionally displays some status information (see status and displayStatus).

Arguments

 :: (Expr -> TCM a) The command to perform. -> String The expression to parse. -> CommandM (Maybe CPUTime, a)

Parses and scope checks an expression (using the "inside scope" as the scope), performs the given command with the expression as input, and returns the result and the time it takes.

Tell to highlight the code using the given highlighting info (unless it is Nothing).

Tells the Emacs mode to go to the first error position (if any).