packages feed

proof-assistant-bot-0.2.2: src/Agda/Interaction/Command/TypeIn.hs

{-# LANGUAGE OverloadedStrings #-}
module Agda.Interaction.Command.TypeIn where

import Agda.Interaction.Base (Rewrite (..))
import Agda.Interaction.BasicOps (typeInMeta)
import Agda.Syntax.Common.Pretty (prettyShow)
import Agda.TypeChecking.Monad.Base (TCM)
import Agda.TypeChecking.Pretty (prettyTCM)
import Data.ByteString (ByteString)

import Agda.Interaction.Command.Internal.Parser
import Proof.Assistant.Helpers (toBS)

typeIn :: [ByteString] -> TCM ByteString
typeIn s@(_:_:_) =
    actOnMeta s $ \i e ->
    do  e1 <- typeInMeta i Normalised e
        _e2 <- typeInMeta i AsIs e
        r <- prettyTCM e1
        pure . toBS $ prettyShow r

typeIn _ = pure ":typeIn meta expr"