| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Mikan.Syntax.Internal.Dom
Contents
Synopsis
- data Abs a
- isAbs :: Abs a -> Bool
- data DomInfo t = DomInfo {
- domInfoArgInfo :: !ArgInfo
- domInfoName :: !(Maybe NamedName)
- domInfoIsFinite :: !Bool
- domInfoTactic :: !(Maybe t)
- data Dom' t e where
- domTactic :: Dom' t e -> Maybe t
- dTactic :: forall t e f. Functor f => (Maybe t -> f (Maybe t)) -> Dom' t e -> f (Dom' t e)
- domIsFinite :: Dom' t e -> Bool
- dIsFinite :: forall t e f. Functor f => (Bool -> f Bool) -> Dom' t e -> f (Dom' t e)
- domInfo :: Dom' t e -> ArgInfo
- dInfo :: forall t e f. Functor f => (ArgInfo -> f ArgInfo) -> Dom' t e -> f (Dom' t e)
- defaultArgDom :: ArgInfo -> a -> Dom' t a
- defaultNamedArgDom :: ArgInfo -> ShortText -> a -> Dom' t a
- defaultDom :: a -> Dom' t a
- argFromDom :: Dom' t a -> Arg a
- domFromArg :: Arg a -> Dom' t a
- domFromNamedArg :: NamedArg a -> Dom' t a
- namedArgFromDom :: Dom' t a -> NamedArg a
Abstractions
A binder, which may or may not actually introduce a new variable.
Constructors
| Abs | The body has an extra free variable. |
| NoAbs | The body does not actually depend on the bound variable. |
Instances
Domains
Constructors
| DomInfo | |
Fields
| |
Instances
| Show t => Show (DomInfo t) Source # | |
| Eq (DomInfo Term) Source # | |
| Ord (DomInfo Term) Source # | |
Defined in Mikan.TypeChecking.Substitute | |
Similar to Arg, but for domain types of functions and telescopes.
Dom is used in Pi of internal syntax, in Context and Telescope.
Arg is used for actual arguments (Var, Con, Def etc.)
and in Abstract syntax and other situations.
- cubical
- When
annFinite (argInfoAnnotation domInfo) = Truefor the domain of aPitype, the elements should be compared by tabulating the domain type. Only supported in case the domain type is primIsOne, to obtain the correct equality for partial elements.
Constructors
| Dom' | |
Fields
| |
Instances
| GetDefs Telescope Source # | |||||
| Reify Telescope Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| DropArgs Telescope Source # | NOTE: This creates telescopes with unbound de Bruijn indices. | ||||
| AddContext Telescope Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Telescope -> m a -> m a Source # | |||||
| PrettyTCM Telescope Source # | |||||
Defined in Mikan.TypeChecking.Pretty | |||||
| Reduce Telescope Source # | |||||
| TeleNoAbs ListTel Source # | |||||
| TeleNoAbs Telescope Source # | |||||
| Abstract Telescope Source # | |||||
| GetDefs a => GetDefs (Dom a) Source # | |||||
| LensSort a => LensSort (Dom a) Source # | |||||
| Reify i => Reify (Dom i) Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract Associated Types
| |||||
| AbsTerm a => AbsTerm (Dom a) Source # | |||||
| EqualSy a => EqualSy (Dom a) Source # | Ignore the tactic. | ||||
| Free t => Free (Dom t) Source # | |||||
Defined in Mikan.TypeChecking.Free.Generic | |||||
| PrecomputeFreeVars a => PrecomputeFreeVars (Dom a) Source # | |||||
Defined in Mikan.TypeChecking.Free.Precompute Methods precomputeFreeVars :: Dom a -> FV (Dom a) Source # | |||||
| (Reduce a, ForceNotFree a, TermSubst a) => ForceNotFree (Dom a) Source # | |||||
Defined in Mikan.TypeChecking.Free.Reduce Methods forceNotFree' :: Dom a -> FreeRed (Dom a) | |||||
| MentionsMeta t => MentionsMeta (Dom t) Source # | |||||
Defined in Mikan.TypeChecking.MetaVars.Mention | |||||
| AddContext (KeepNames Telescope) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => KeepNames Telescope -> m a -> m a Source # | |||||
| PrettyTCM (Dom Type) Source # | |||||
Defined in Mikan.TypeChecking.Pretty | |||||
| ToTerm (Dom Type) Source # | |||||
| Instantiate e => Instantiate (Dom e) Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| InstantiateFull e => InstantiateFull (Dom e) Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| Normalise t => Normalise (Dom t) Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| Reduce t => Reduce (Dom t) Source # | |||||
| Simplify t => Simplify (Dom t) Source # | |||||
Defined in Mikan.TypeChecking.Reduce | |||||
| EmbPrj a => EmbPrj (Dom a) Source # | |||||
| SynEq a => SynEq (Dom a) Source # | Ignores tactic argument annotations. | ||||
Defined in Mikan.TypeChecking.SyntacticEquality | |||||
| Unquote a => Unquote (Dom a) Source # | |||||
| Decoration (Dom' t) Source # | |||||
| Functor (Dom' t) Source # | |||||
| Foldable (Dom' t) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom Methods fold :: Monoid m => Dom' t m -> m # foldMap :: Monoid m => (a -> m) -> Dom' t a -> m # foldMap' :: Monoid m => (a -> m) -> Dom' t a -> m # foldr :: (a -> b -> b) -> b -> Dom' t a -> b # foldr' :: (a -> b -> b) -> b -> Dom' t a -> b # foldl :: (b -> a -> b) -> b -> Dom' t a -> b # foldl' :: (b -> a -> b) -> b -> Dom' t a -> b # foldr1 :: (a -> a -> a) -> Dom' t a -> a # foldl1 :: (a -> a -> a) -> Dom' t a -> a # elem :: Eq a => a -> Dom' t a -> Bool # maximum :: Ord a => Dom' t a -> a # minimum :: Ord a => Dom' t a -> a # | |||||
| Traversable (Dom' t) Source # | |||||
| Ord a => Ord (Dom a) Source # | |||||
| LensArgInfo (Dom' t e) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom | |||||
| LensFreeVariables (Dom' t e) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom Methods getFreeVariables :: Dom' t e -> FreeVariables Source # setFreeVariables :: FreeVariables -> Dom' t e -> Dom' t e Source # mapFreeVariables :: (FreeVariables -> FreeVariables) -> Dom' t e -> Dom' t e Source # | |||||
| LensHiding (Dom' t e) Source # | |||||
| LensNamed (Dom' t e) Source # | |||||
| LensOrigin (Dom' t e) Source # | |||||
| (Pretty t, Pretty e) => Pretty (Dom' t e) Source # | |||||
| (TermLike a, TermLike b) => TermLike (Dom' a b) Source # | |||||
| (AllMetas a, AllMetas b) => AllMetas (Dom' a b) Source # | |||||
| (NamesIn a, NamesIn b) => NamesIn (Dom' a b) Source # | |||||
Defined in Mikan.Syntax.Internal.Names | |||||
| HasRange a => HasRange (Dom' t a) Source # | |||||
| (KillRange t, KillRange a) => KillRange (Dom' t a) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom Methods killRange :: KillRangeT (Dom' t a) Source # | |||||
| (ToAbstract r, AbsOfRef r ~ Expr) => ToAbstract (Dom r, Name) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract Associated Types
Methods toAbstract :: MonadReflectedToAbstract m => (Dom r, Name) -> m (AbsOfRef (Dom r, Name)) Source # | |||||
| t ~ Term => AddContext (Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Dom' t Type -> m a -> m a Source # | |||||
| t ~ Term => AddContext (Dom' t (Name, Type)) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Dom' t (Name, Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (Dom' t (ShortText, Type)) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => Dom' t (ShortText, Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (Name, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (Name, Dom' t Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (KeepNames ShortText, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (KeepNames ShortText, Dom' t Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (List1 Name, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 Name, Dom' t Type) -> m a -> m a Source # | |||||
| AddContext (List1 (WithHiding Name), Dom Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (WithHiding Name), Dom Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (List1 (Dom' t Name), Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (List1 (Dom' t Name), Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext (ShortText, Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => (ShortText, Dom' t Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext ([Name], Dom' t Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Name], Dom' t Type) -> m a -> m a Source # | |||||
| AddContext ([WithHiding Name], Dom Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([WithHiding Name], Dom Type) -> m a -> m a Source # | |||||
| t ~ Term => AddContext ([Dom' t Name], Type) Source # | |||||
Defined in Mikan.TypeChecking.Monad.Context Methods addContext :: MonadAddContext m => ([Dom' t Name], Type) -> m a -> m a Source # | |||||
| (Subst a, Subst b, SubstArg a ~ SubstArg b) => Subst (Dom' a b) Source # | |||||
Defined in Mikan.TypeChecking.Substitute Associated Types
Methods applySubst :: Substitution' (SubstArg (Dom' a b)) -> Dom' a b -> Dom' a b Source # | |||||
| (NFData t, NFData e) => NFData (Dom' t e) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom | |||||
| (Show t, Show e) => Show (Dom' t e) Source # | |||||
| Eq a => Eq (Dom' t a) Source # | Ignores | ||||
| type ReifiesTo Telescope Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract | |||||
| type TypeOf (Dom a) Source # | |||||
Defined in Mikan.Syntax.Internal.Term | |||||
| type ReifiesTo (Dom i) Source # | |||||
Defined in Mikan.Syntax.Translation.InternalToAbstract | |||||
| type NameOf (Dom' t e) Source # | |||||
Defined in Mikan.Syntax.Internal.Dom | |||||
| type AbsOfRef (Dom r, Name) Source # | |||||
Defined in Mikan.Syntax.Translation.ReflectedToAbstract | |||||
| type SubstArg (Dom' a b) Source # | |||||
Defined in Mikan.TypeChecking.Substitute | |||||
domIsFinite :: Dom' t e -> Bool Source #
defaultArgDom :: ArgInfo -> a -> Dom' t a Source #
defaultDom :: a -> Dom' t a Source #
argFromDom :: Dom' t a -> Arg a Source #
domFromArg :: Arg a -> Dom' t a Source #
domFromNamedArg :: NamedArg a -> Dom' t a Source #
namedArgFromDom :: Dom' t a -> NamedArg a Source #