Mikan
Safe HaskellNone
LanguageHaskell2010

Mikan.Syntax.Common

Description

Some common syntactic entities are defined in this module.

Synopsis

Documentation

bestConInfo :: ConOrigin -> ConOrigin -> ConOrigin Source #

Prefer user-written over system-inserted.

defaultImportDir :: ImportDirective' n m Source #

Default is directive is private (use everything, but do not export).

fittingNamedArg :: (LensNamed arg, NameOf arg ~ NamedName, LensHiding arg, LensNamed dom, NameOf dom ~ NamedName, LensHiding dom) => arg -> dom -> Maybe Bool Source #

Does an argument arg fit the shape dom of the next expected argument?

The hiding has to match, and if the argument has a name, it should match the name of the domain.

Nothing should be __IMPOSSIBLE__, so use as @ fromMaybe IMPOSSIBLE $ fittingNamedArg arg dom @

hidden :: LensHiding a => a -> Bool Source #

Hidden arguments are hidden.

hide :: LensHiding a => a -> a Source #

hideExplicit :: LensHiding a => a -> a Source #

Hide a NotHidden thing.

isDefaultImportDir :: ImportDirective' n m -> Bool Source #

isDefaultImportDir implies null, but not the other way round.

isUnnamed :: Named name a -> Maybe a Source #

itsRange :: HasRange a => a -> Ranged a Source #

Pair the thing with its own range.

mapNameOf :: LensNamed a => (Maybe (NameOf a) -> Maybe (NameOf a)) -> a -> a Source #

mapUsing :: ([ImportedName' n1 m1] -> [ImportedName' n2 m2]) -> Using' n1 m1 -> Using' n2 m2 Source #

named :: name -> a -> Named name a Source #

namedArg :: NamedArg a -> a Source #

Get the content of a NamedArg.

namedSame :: (LensNamed a, LensNamed b, NameOf a ~ NamedName, NameOf b ~ NamedName) => a -> b -> Bool Source #

Equality of argument names of things modulo Range and Origin.

noPlaceholder :: e -> MaybePlaceholder e Source #

An abbreviation: noPlaceholder = NoPlaceholder Nothing.

notVisible :: LensHiding a => a -> Bool Source #

Instance and Hidden arguments are notVisible.

pDom :: LensHiding a => a -> Doc -> Doc Source #

partitionImportedNames :: [ImportedName' n m] -> ([n], [m]) Source #

Like partitionEithers.

prettyHiding :: LensHiding a => a -> (Doc -> Doc) -> Doc -> Doc Source #

prettyHiding info visible doc puts the correct braces around doc according to info info and returns visible doc if the we deal with a visible thing.

sameHiding :: (LensHiding a, LensHiding b) => a -> b -> Bool Source #

Ignores Overlappable.

sameName :: NamedName -> NamedName -> Bool Source #

Equality of argument names of things modulo Range and Origin.

setNameOf :: LensNamed a => Maybe (NameOf a) -> a -> a Source #

setNamedArg :: NamedArg a -> b -> NamedArg b Source #

setNamedArg a b = updateNamedArg (const b) a

unnamed :: a -> Named name a Source #

unranged :: a -> Ranged a Source #

Thing with no range info.

updateNamedArg :: (a -> b) -> NamedArg a -> NamedArg b Source #

The functor instance for NamedArg would be ambiguous, so we give it another name here.

updateNamedArgA :: Applicative f => (a -> f b) -> NamedArg a -> f (NamedArg b) Source #

visible :: LensHiding a => a -> Bool Source #

NotHidden arguments are visible.

withArgsFrom :: [a] -> [Arg b] -> [Arg a] Source #

xs `withArgsFrom` args translates xs into a list of Args, using the elements in args to fill in the non-unArg fields.

Precondition: The two lists should have equal length.

data Access Source #

Access modifier.

Constructors

PrivateAccess KwRange Origin

Store the Origin of the private block that lead to this qualifier. This is needed for more faithful printing of declarations. KwRange is the range of the private keyword.

PublicAccess 

Instances

Instances details
Pretty Access Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Access Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Access Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj Access Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Abstract

NFData Access Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Access -> () #

Show Access Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Access Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Access -> Access -> Bool #

(/=) :: Access -> Access -> Bool #

Ord Access Source # 
Instance details

Defined in Mikan.Syntax.Common

class AllAreOpaque a where Source #

Minimal complete definition

Nothing

Methods

jointOpacity :: a -> JointOpacity Source #

default jointOpacity :: forall (t :: Type -> Type) b. (Foldable t, AllAreOpaque b, t b ~ a) => a -> JointOpacity Source #

Instances

Instances details
AllAreOpaque IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

AllAreOpaque (DefInfo' t) Source # 
Instance details

Defined in Mikan.Syntax.Info

AllAreOpaque a => AllAreOpaque (Maybe a) Source # 
Instance details

Defined in Mikan.Syntax.Common

AllAreOpaque a => AllAreOpaque [a] Source # 
Instance details

Defined in Mikan.Syntax.Common

class AnyIsAbstract a where Source #

Is any element of a collection an AbstractDef.

Minimal complete definition

Nothing

Methods

anyIsAbstract :: a -> IsAbstract Source #

default anyIsAbstract :: forall (t :: Type -> Type) b. (Foldable t, AnyIsAbstract b, t b ~ a) => a -> IsAbstract Source #

Instances

Instances details
AnyIsAbstract IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

AnyIsAbstract (DefInfo' t) Source # 
Instance details

Defined in Mikan.Syntax.Info

AnyIsAbstract a => AnyIsAbstract (Maybe a) Source # 
Instance details

Defined in Mikan.Syntax.Common

AnyIsAbstract a => AnyIsAbstract [a] Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

anyIsAbstract :: [a] -> IsAbstract Source #

data Arg e Source #

Constructors

Arg 

Fields

Instances

Instances details
MapNamedArgPattern NAP Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP Source #

IsPrefixOf Args Source # 
Instance details

Defined in Mikan.TypeChecking.Abstract

Decoration Arg Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverseF :: Functor m => (a -> m b) -> Arg a -> m (Arg b) Source #

distributeF :: Functor m => Arg (m a) -> m (Arg a) Source #

Functor Arg Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> Arg a -> Arg b #

(<$) :: a -> Arg b -> Arg a #

Foldable Arg Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => Arg m -> m #

foldMap :: Monoid m => (a -> m) -> Arg a -> m #

foldMap' :: Monoid m => (a -> m) -> Arg a -> m #

foldr :: (a -> b -> b) -> b -> Arg a -> b #

foldr' :: (a -> b -> b) -> b -> Arg a -> b #

foldl :: (b -> a -> b) -> b -> Arg a -> b #

foldl' :: (b -> a -> b) -> b -> Arg a -> b #

foldr1 :: (a -> a -> a) -> Arg a -> a #

foldl1 :: (a -> a -> a) -> Arg a -> a #

toList :: Arg a -> [a] #

null :: Arg a -> Bool #

length :: Arg a -> Int #

elem :: Eq a => a -> Arg a -> Bool #

maximum :: Ord a => Arg a -> a #

minimum :: Ord a => Arg a -> a #

sum :: Num a => Arg a -> a #

product :: Num a => Arg a -> a #

Traversable Arg Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> Arg a -> f (Arg b) #

sequenceA :: Applicative f => Arg (f a) -> f (Arg a) #

mapM :: Monad m => (a -> m b) -> Arg a -> m (Arg b) #

sequence :: Monad m => Arg (m a) -> m (Arg a) #

MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

Instance details

Defined in Mikan.Syntax.Internal.Pattern

PatternLike a b => PatternLike a (Arg b) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

foldrPattern :: Monoid m => (Pattern' a -> m -> m) -> Arg b -> m Source #

traversePatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Arg b -> m (Arg b) Source #

SubstExpr a => SubstExpr (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Arg a -> Arg a Source #

IsProjP a => IsProjP (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Name

APatternLike a => APatternLike (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Associated Types

type ADotT (Arg a) 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

type ADotT (Arg a) = ADotT a

Methods

foldrAPattern :: Monoid m => (Pattern' (ADotT (Arg a)) -> m -> m) -> Arg a -> m Source #

traverseAPatternM :: Monad m => (Pattern' (ADotT (Arg a)) -> m (Pattern' (ADotT (Arg a)))) -> (Pattern' (ADotT (Arg a)) -> m (Pattern' (ADotT (Arg a)))) -> Arg a -> m (Arg a) Source #

DeclaredNames a => DeclaredNames (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

Methods

declaredNames :: Collection KName m => Arg a -> m Source #

ExprLike a => ExprLike (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

LensArgInfo (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

LensFreeVariables (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

LensHiding (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getHiding :: Arg e -> Hiding Source #

setHiding :: Hiding -> Arg e -> Arg e Source #

mapHiding :: (Hiding -> Hiding) -> Arg e -> Arg e Source #

LensNamed a => LensNamed (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type NameOf (Arg a) 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Arg a) = NameOf a

Methods

lensNamed :: Lens' (Arg a) (Maybe (NameOf (Arg a))) Source #

LensOrigin (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getOrigin :: Arg e -> Origin Source #

setOrigin :: Origin -> Arg e -> Arg e Source #

mapOrigin :: (Origin -> Origin) -> Arg e -> Arg e Source #

Pretty a => Pretty (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

pretty :: Arg a -> Doc Source #

prettyPrec :: Int -> Arg a -> Doc Source #

prettyList :: [Arg a] -> Doc Source #

ExprLike a => ExprLike (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

Methods

mapExpr :: (Expr -> Expr) -> Arg a -> Arg a Source #

foldExpr :: Monoid m => (Expr -> m) -> Arg a -> m Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> Arg a -> m (Arg a) Source #

CPatternLike p => CPatternLike (Arg p) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Pattern

Methods

foldrCPattern :: Monoid m => (Pattern -> m -> m) -> Arg p -> m Source #

traverseCPatternA :: Applicative m => (Pattern -> m Pattern -> m Pattern) -> Arg p -> m (Arg p) Source #

traverseCPatternM :: Monad m => (Pattern -> m Pattern) -> (Pattern -> m Pattern) -> Arg p -> m (Arg p) Source #

IsWithP p => IsWithP (Arg p) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Pattern

Methods

isWithP :: Arg p -> Maybe (Arg p) Source #

GetDefs a => GetDefs (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Defs

Methods

getDefs :: (Monoid m, ExpandCase LiftedRep m) => (MetaId -> Maybe Term) -> (QName -> m) -> Arg a -> m Source #

TermLike a => TermLike (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Generic

Methods

traverseTermM :: Monad m => (Term -> m Term) -> Arg a -> m (Arg a) Source #

foldTerm :: Monoid m => (Term -> m) -> Arg a -> m Source #

AllMetas a => AllMetas (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.MetaVars

Methods

allMetas :: Monoid m => (MetaId -> m) -> Arg a -> m Source #

NamesIn a => NamesIn (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Names

Methods

namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> Arg a -> m Source #

CountPatternVars a => CountPatternVars (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

HasDefP a => HasDefP (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

hasDefP :: Arg a -> Bool Source #

PatternVars (Arg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Associated Types

type PatternVarOut (Arg (Pattern' a)) 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

type PatternVarOut (Arg (Pattern' a)) = a
PatternVars (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Associated Types

type PatternVarOut (NamedArg (Pattern' a)) 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

LensSort a => LensSort (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Term

HasRange a => HasRange (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: Arg a -> Range Source #

KillRange a => KillRange (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

SetRange a => SetRange (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

setRange :: Range -> Arg a -> Arg a Source #

ToConcrete a => ToConcrete (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs (Arg a) 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type ConOfAbs (Arg a) = Arg (ConOfAbs a)

Methods

toConcrete :: MonadToConcrete m => Arg a -> m (ConOfAbs (Arg a)) Source #

bindToConcrete :: MonadToConcrete m => Arg a -> (ConOfAbs (Arg a) -> m b) -> m b Source #

ToAbstract c => ToAbstract (Arg c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

Associated Types

type AbsOfCon (Arg c) 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type AbsOfCon (Arg c) = Arg (AbsOfCon c)

Methods

toAbstract :: Arg c -> ScopeM (AbsOfCon (Arg c)) Source #

Reify i => Reify (Arg i) Source #

Skip reification of implicit args if option is off.

Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo (Arg i) 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

type ReifiesTo (Arg i) = Arg (ReifiesTo i)

Methods

reify :: MonadReify m => Arg i -> m (ReifiesTo (Arg i)) Source #

reifyWhen :: MonadReify m => Bool -> Arg i -> m (ReifiesTo (Arg i)) Source #

ToAbstract r => ToAbstract (Arg r) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef (Arg r) 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef (Arg r) = NamedArg (AbsOfRef r)
ToAbstract r => ToAbstract [Arg r] Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef [Arg r] 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef [Arg r] = [NamedArg (AbsOfRef r)]
AbsTerm a => AbsTerm (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Abstract

Methods

absTerm :: Nat -> Term -> Arg a -> Arg a Source #

EqualSy a => EqualSy (Arg a) Source #

Compares visibilities and values.

Instance details

Defined in Mikan.TypeChecking.Abstract

Methods

equalSy :: Arg a -> Arg a -> Bool Source #

Free t => Free (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Free.Generic

Methods

freeVars :: ComputeFree r => Arg t -> Reader r (Collect r) Source #

PrecomputeFreeVars a => PrecomputeFreeVars (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Free.Precompute

Methods

precomputeFreeVars :: Arg a -> FV (Arg a) Source #

(Reduce a, ForceNotFree a) => ForceNotFree (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Free.Reduce

Methods

forceNotFree' :: Arg a -> FreeRed (Arg a)

NoProjectedVar a => NoProjectedVar (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.MetaVars

ReduceAndEtaContract a => ReduceAndEtaContract (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.MetaVars

Methods

reduceAndEtaContract :: Arg a -> TCM (Arg a) Source #

MentionsMeta t => MentionsMeta (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.MetaVars.Mention

ExpandPatternSynonyms a => ExpandPatternSynonyms (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Patterns.Abstract

PrettyTCM (Arg Expr) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => Arg Expr -> m Doc Source #

PrettyTCM (Arg Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => Arg Term -> m Doc Source #

PrettyTCM (Arg Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => Arg Type -> m Doc Source #

PrettyTCM (Arg ShortText) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (Arg Bool) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => Arg Bool -> m Doc Source #

PrettyTCM (NamedArg Expr) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (NamedArg Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

NormaliseProjP a => NormaliseProjP (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Records

Methods

normaliseProjP :: HasConstInfo m => Arg a -> m (Arg a) Source #

Instantiate t => Instantiate (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

instantiate' :: Arg t -> ReduceM (Arg t) Source #

InstantiateFull t => InstantiateFull (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

instantiateFull' :: Arg t -> ReduceM (Arg t) Source #

IsMeta a => IsMeta (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

isMeta :: Arg a -> Maybe MetaId Source #

Normalise t => Normalise (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

normalise' :: Arg t -> ReduceM (Arg t) Source #

Reduce t => Reduce (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

reduce' :: Arg t -> ReduceM (Arg t) Source #

reduceB' :: Arg t -> ReduceM (Blocked (Arg t)) Source #

Simplify t => Simplify (Arg t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

simplify' :: Arg t -> ReduceM (Arg t)

IsFlexiblePattern a => IsFlexiblePattern (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS

EmbPrj a => EmbPrj (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Methods

icode :: Arg a -> S Word32 Source #

icod_ :: Arg a -> S Word32 Source #

value :: Word32 -> R (Arg a) Source #

Apply [NamedArg (Pattern' a)] Source #

Make sure we only drop variable patterns.

Instance details

Defined in Mikan.TypeChecking.Substitute

Subst a => Subst (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

Associated Types

type SubstArg (Arg a) 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Arg a) = SubstArg a

Methods

applySubst :: Substitution' (SubstArg (Arg a)) -> Arg a -> Arg a Source #

SynEq a => SynEq (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.SyntacticEquality

Methods

synEq :: Arg a -> Arg a -> SynEqA (Arg a)

PiApplyArgs a => PiApplyArgs (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope

Methods

toPiArgs :: Arg a -> [Term] Source #

IApplyVars p => IApplyVars (NamedArg p) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope.Path

Methods

iApplyVars :: NamedArg p -> [Int] Source #

Unquote a => Unquote (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Unquote

Methods

unquote :: Term -> UnquoteM (Arg a) Source #

NFData e => NFData (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Arg e -> () #

Show e => Show (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> Arg e -> ShowS #

show :: Arg e -> String #

showList :: [Arg e] -> ShowS #

Eq e => Eq (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Arg e -> Arg e -> Bool #

(/=) :: Arg e -> Arg e -> Bool #

Ord e => Ord (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

compare :: Arg e -> Arg e -> Ordering #

(<) :: Arg e -> Arg e -> Bool #

(<=) :: Arg e -> Arg e -> Bool #

(>) :: Arg e -> Arg e -> Bool #

(>=) :: Arg e -> Arg e -> Bool #

max :: Arg e -> Arg e -> Arg e #

min :: Arg e -> Arg e -> Arg e #

PatternToExpr p e => PatternToExpr (Arg p) (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

patToExpr :: Arg p -> Reader Hiding (Arg e) Source #

TermToPattern a b => TermToPattern (Arg a) (Arg b) Source # 
Instance details

Defined in Mikan.TypeChecking.Patterns.Internal

Methods

termToPattern :: Arg a -> TCM (Arg b) Source #

AddContext (List1 (Arg Name), Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (Arg Name), Type) -> m a -> m a Source #

AddContext (List1 (NamedArg Name), Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (NamedArg Name), Type) -> m a -> m a Source #

AddContext ([Arg Name], Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([Arg Name], Type) -> m a -> m a Source #

AddContext ([NamedArg Name], Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source #

type ADotT (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

type ADotT (Arg a) = ADotT a
type NameOf (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Arg a) = NameOf a
type PatternVarOut (Arg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

type PatternVarOut (Arg (Pattern' a)) = a
type PatternVarOut (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

type TypeOf (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Term

type TypeOf (Arg a) = Dom (TypeOf a)
type ConOfAbs (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type ConOfAbs (Arg a) = Arg (ConOfAbs a)
type AbsOfCon (Arg c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type AbsOfCon (Arg c) = Arg (AbsOfCon c)
type ReifiesTo (Arg i) Source # 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

type ReifiesTo (Arg i) = Arg (ReifiesTo i)
type AbsOfRef (Arg r) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef (Arg r) = NamedArg (AbsOfRef r)
type AbsOfRef [Arg r] Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef [Arg r] = [NamedArg (AbsOfRef r)]
type SubstArg (Arg a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Arg a) = SubstArg a

data ArgInfo Source #

A function argument can be hidden.

Instances

Instances details
LensArgInfo ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensFreeVariables ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensHiding ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensOrigin ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

EqualSy ArgInfo Source #

Ignore origin and free variables.

Instance details

Defined in Mikan.TypeChecking.Abstract

ToTerm ArgInfo Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

ChooseFlex ArgInfo Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

EmbPrj ArgInfo Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

SynEq ArgInfo Source # 
Instance details

Defined in Mikan.TypeChecking.SyntacticEquality

Methods

synEq :: ArgInfo -> ArgInfo -> SynEqA ArgInfo

Unquote ArgInfo Source # 
Instance details

Defined in Mikan.TypeChecking.Unquote

Null ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ArgInfo -> () #

Show ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: ArgInfo -> ArgInfo -> Bool #

(/=) :: ArgInfo -> ArgInfo -> Bool #

Ord ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

type ArgName = ShortText Source #

Names in binders and arguments.

type Arity = Nat Source #

data Associativity Source #

Associativity.

Constructors

NonAssoc 
LeftAssoc 
RightAssoc 

data BinderNameOrigin Source #

Instances

Instances details
KillRange BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: BinderNameOrigin -> () #

Generic BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep BinderNameOrigin 
Instance details

Defined in Mikan.Syntax.Common

type Rep BinderNameOrigin = D1 ('MetaData "BinderNameOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "UserBinderName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InsertedBinderName" 'PrefixI 'False) (U1 :: Type -> Type))
Show BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep BinderNameOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep BinderNameOrigin = D1 ('MetaData "BinderNameOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "UserBinderName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "InsertedBinderName" 'PrefixI 'False) (U1 :: Type -> Type))

data BoundVariablePosition Source #

Positions of variables in syntax declarations.

Constructors

BoundVariablePosition 

Fields

  • holeNumber :: !Int

    The position (in the left-hand side of the syntax declaration) of the hole in which the variable is bound, counting from zero (and excluding parts that are not holes). For instance, for syntax Σ A (λ x → B) = B , A , x the number for x is 1, corresponding to B (0 would correspond to A).

  • varNumber :: !Int

    The position in the list of variables for this particular variable, counting from zero, and including wildcards. For instance, for syntax F (λ x _ y → A) = y ! A ! x the number for x is 0, the number for _ is 1, and the number for y is 2.

data Catchall Source #

Range of the CATCHALL pragma for a clause, if any. Nothing means no such pragma.

Instances

Instances details
KillRange Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj Catchall Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Catchall -> () #

Monoid Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup Catchall Source #

Composition is left-biased, taking the left Range if both have one.

Instance details

Defined in Mikan.Syntax.Common

Generic Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep Catchall 
Instance details

Defined in Mikan.Syntax.Common

type Rep Catchall = D1 ('MetaData "Catchall" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesCatchall" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons "NoCatchall" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: Catchall -> Rep Catchall x #

to :: Rep Catchall x -> Catchall #

Show Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep Catchall Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep Catchall = D1 ('MetaData "Catchall" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesCatchall" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Range)) :+: C1 ('MetaCons "NoCatchall" 'PrefixI 'False) (U1 :: Type -> Type))

data ConOrigin Source #

Where does the ConP or Con come from?

Constructors

ConOSystem

Inserted by system or expanded from an implicit pattern.

ConOCon

User wrote a constructor (pattern).

ConORec

User wrote a record (pattern).

ConOSplit

Generated by interactive case splitting.

ConORecWhere

User wrote a record where expression.

Instances

Instances details
KillRange ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj ConOrigin Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ConOrigin -> () #

Bounded ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep ConOrigin 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConOrigin = D1 ('MetaData "ConOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "ConOSystem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConOCon" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ConORec" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ConOSplit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConORecWhere" 'PrefixI 'False) (U1 :: Type -> Type))))
Show ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConOrigin = D1 ('MetaData "ConOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "ConOSystem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConOCon" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ConORec" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ConOSplit" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConORecWhere" 'PrefixI 'False) (U1 :: Type -> Type))))

newtype Constr a Source #

Constructors

Constr a 

Instances

Instances details
ToConcrete (Constr Constructor) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => Constr Constructor -> m (ConOfAbs (Constr Constructor)) Source #

bindToConcrete :: MonadToConcrete m => Constr Constructor -> (ConOfAbs (Constr Constructor) -> m b) -> m b Source #

type ConOfAbs (Constr Constructor) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

data ConstructorOrPatternSynonym Source #

Distinguish constructors from pattern synonyms.

Instances

Instances details
Pretty ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

Bounded ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep ConstructorOrPatternSynonym 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConstructorOrPatternSynonym = D1 ('MetaData "ConstructorOrPatternSynonym" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "IsConstructor" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsPatternSynonym" 'PrefixI 'False) (U1 :: Type -> Type))
Show ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConstructorOrPatternSynonym Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ConstructorOrPatternSynonym = D1 ('MetaData "ConstructorOrPatternSynonym" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "IsConstructor" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsPatternSynonym" 'PrefixI 'False) (U1 :: Type -> Type))

data CoverageCheck Source #

Coverage check? (Default is yes).

Instances

Instances details
KillRange CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: CoverageCheck -> () #

Monoid CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Bounded CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep CoverageCheck 
Instance details

Defined in Mikan.Syntax.Common

type Rep CoverageCheck = D1 ('MetaData "CoverageCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesCoverageCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoCoverageCheck" 'PrefixI 'False) (U1 :: Type -> Type))
Show CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep CoverageCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep CoverageCheck = D1 ('MetaData "CoverageCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesCoverageCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoCoverageCheck" 'PrefixI 'False) (U1 :: Type -> Type))

data DataOrRecord' p Source #

Constructors

IsData 
IsRecord p 

Instances

Instances details
CopatternMatchingAllowed DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

PatternMatchingAllowed DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

PrettyTCM DataOrRecord_ Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty.Warning

Boolean DataOrRecord_ Source # 
Instance details

Defined in Mikan.Syntax.Common

IsBool DataOrRecord_ Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj a => EmbPrj (DataOrRecord' a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData a => NFData (DataOrRecord' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: DataOrRecord' a -> () #

Generic (DataOrRecord' p) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep (DataOrRecord' p) 
Instance details

Defined in Mikan.Syntax.Common

type Rep (DataOrRecord' p) = D1 ('MetaData "DataOrRecord'" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "IsData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsRecord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 p)))
Show p => Show (DataOrRecord' p) Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq p => Eq (DataOrRecord' p) Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep (DataOrRecord' p) Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep (DataOrRecord' p) = D1 ('MetaData "DataOrRecord'" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "IsData" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IsRecord" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 p)))

data DisplayLHS Source #

Distinguish parsing a DISPLAY pragma from an ordinary left hand side.

Instances

Instances details
Boolean DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

IsBool DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

Bounded DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep DisplayLHS 
Instance details

Defined in Mikan.Syntax.Common

type Rep DisplayLHS = D1 ('MetaData "DisplayLHS" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesDisplayLHS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoDisplayLHS" 'PrefixI 'False) (U1 :: Type -> Type))
Show DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep DisplayLHS Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep DisplayLHS = D1 ('MetaData "DisplayLHS" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesDisplayLHS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoDisplayLHS" 'PrefixI 'False) (U1 :: Type -> Type))

data ExpandedEllipsis Source #

Instances

Instances details
KillRange ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj ExpandedEllipsis Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ExpandedEllipsis -> () #

Monoid ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

Show ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ExpandedEllipsis Source # 
Instance details

Defined in Mikan.Syntax.Common

data ExprKind Source #

Expression kinds: Expressions or patterns.

Constructors

IsExpr 
IsPattern DisplayLHS 

Instances

Instances details
Show ExprKind Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ExprKind Source # 
Instance details

Defined in Mikan.Syntax.Common

data FileType Source #

Instances

Instances details
Pretty FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj FileType Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: FileType -> () #

Generic FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep FileType 
Instance details

Defined in Mikan.Syntax.Common

type Rep FileType = D1 ('MetaData "FileType" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "AgdaFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MdFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RstFileType" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TexFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OrgFileType" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypstFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TreeFileType" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: FileType -> Rep FileType x #

to :: Rep FileType x -> FileType #

Show FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep FileType Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep FileType = D1 ('MetaData "FileType" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "AgdaFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "MdFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RstFileType" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "TexFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OrgFileType" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TypstFileType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TreeFileType" 'PrefixI 'False) (U1 :: Type -> Type))))

data Fixity Source #

Fixity of operators.

Constructors

Fixity 

Fields

Instances

Instances details
LensFixity Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

ToTerm Fixity Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

EmbPrj Fixity Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Fixity -> () #

Show Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Fixity -> Fixity -> Bool #

(/=) :: Fixity -> Fixity -> Bool #

Ord Fixity Source # 
Instance details

Defined in Mikan.Syntax.Common

data Fixity' Source #

The notation is handled as the fixity in the renamer. Hence, they are grouped together in this type.

Constructors

Fixity' 

Fields

Instances

Instances details
LensFixity Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

LensFixity' Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

PrimTerm Fixity' Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

PrimType Fixity' Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

ToTerm Fixity' Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

EmbPrj Fixity' Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Fixity' -> () #

Show Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Fixity' -> Fixity' -> Bool #

(/=) :: Fixity' -> Fixity' -> Bool #

data FixityLevel Source #

Constructors

Unrelated

No fixity declared.

Related !PrecedenceLevel

Fixity level declared as the number.

Instances

Instances details
Pretty FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

ToTerm FixityLevel Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

EmbPrj FixityLevel Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: FixityLevel -> () #

Show FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord FixityLevel Source # 
Instance details

Defined in Mikan.Syntax.Common

data FreeVariables Source #

Constructors

UnknownFVs 
KnownFVs !VarSet 

Instances

Instances details
LensFreeVariables FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj FreeVariables Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: FreeVariables -> () #

Monoid FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

Show FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord FreeVariables Source # 
Instance details

Defined in Mikan.Syntax.Common

type HasEta = HasEta' PatternOrCopattern Source #

Pattern and copattern matching is allowed in the presence of eta.

In the absence of eta, we have to choose whether we want to allow matching on the constructor or copattern matching with the projections. Having both leads to breakage of subject reduction (issue #4560).

data HasEta' a Source #

Does a record come with eta-equality?

Constructors

YesEta 
NoEta a 

Instances

Instances details
CopatternMatchingAllowed HasEta Source # 
Instance details

Defined in Mikan.Syntax.Common

PatternMatchingAllowed HasEta Source # 
Instance details

Defined in Mikan.Syntax.Common

Functor HasEta' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> HasEta' a -> HasEta' b #

(<$) :: a -> HasEta' b -> HasEta' a #

Foldable HasEta' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => HasEta' m -> m #

foldMap :: Monoid m => (a -> m) -> HasEta' a -> m #

foldMap' :: Monoid m => (a -> m) -> HasEta' a -> m #

foldr :: (a -> b -> b) -> b -> HasEta' a -> b #

foldr' :: (a -> b -> b) -> b -> HasEta' a -> b #

foldl :: (b -> a -> b) -> b -> HasEta' a -> b #

foldl' :: (b -> a -> b) -> b -> HasEta' a -> b #

foldr1 :: (a -> a -> a) -> HasEta' a -> a #

foldl1 :: (a -> a -> a) -> HasEta' a -> a #

toList :: HasEta' a -> [a] #

null :: HasEta' a -> Bool #

length :: HasEta' a -> Int #

elem :: Eq a => a -> HasEta' a -> Bool #

maximum :: Ord a => HasEta' a -> a #

minimum :: Ord a => HasEta' a -> a #

sum :: Num a => HasEta' a -> a #

product :: Num a => HasEta' a -> a #

Traversable HasEta' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> HasEta' a -> f (HasEta' b) #

sequenceA :: Applicative f => HasEta' (f a) -> f (HasEta' a) #

mapM :: Monad m => (a -> m b) -> HasEta' a -> m (HasEta' b) #

sequence :: Monad m => HasEta' (m a) -> m (HasEta' a) #

HasRange a => HasRange (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: HasEta' a -> Range Source #

KillRange a => KillRange (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj a => EmbPrj (HasEta' a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData a => NFData (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: HasEta' a -> () #

Show a => Show (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> HasEta' a -> ShowS #

show :: HasEta' a -> String #

showList :: [HasEta' a] -> ShowS #

Eq a => Eq (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: HasEta' a -> HasEta' a -> Bool #

(/=) :: HasEta' a -> HasEta' a -> Bool #

Ord a => Ord (HasEta' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

compare :: HasEta' a -> HasEta' a -> Ordering #

(<) :: HasEta' a -> HasEta' a -> Bool #

(<=) :: HasEta' a -> HasEta' a -> Bool #

(>) :: HasEta' a -> HasEta' a -> Bool #

(>=) :: HasEta' a -> HasEta' a -> Bool #

max :: HasEta' a -> HasEta' a -> HasEta' a #

min :: HasEta' a -> HasEta' a -> HasEta' a #

data Hiding Source #

Instances

Instances details
LensHiding Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Verbalize Hiding Source # 
Instance details

Defined in Mikan.TypeChecking.Errors

ChooseFlex Hiding Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

EmbPrj Hiding Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Unquote Hiding Source # 
Instance details

Defined in Mikan.TypeChecking.Unquote

Null Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Hiding -> () #

Monoid Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup Hiding Source #

Hiding is an idempotent partial monoid, with unit NotHidden. Instance and NotHidden are incompatible.

Instance details

Defined in Mikan.Syntax.Common

Bounded Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep Hiding 
Instance details

Defined in Mikan.Syntax.Common

type Rep Hiding = D1 ('MetaData "Hiding" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "Hidden" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Instance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Overlappable)) :+: C1 ('MetaCons "NotHidden" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: Hiding -> Rep Hiding x #

to :: Rep Hiding x -> Hiding #

Show Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Hiding -> Hiding -> Bool #

(/=) :: Hiding -> Hiding -> Bool #

Ord Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep Hiding = D1 ('MetaData "Hiding" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "Hidden" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Instance" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Overlappable)) :+: C1 ('MetaCons "NotHidden" 'PrefixI 'False) (U1 :: Type -> Type)))

data ImportDirective' n m Source #

The things you are allowed to say when you shuffle names between name spaces (i.e. in import, namespace, or open declarations).

Constructors

ImportDirective 

Fields

Instances

Instances details
(Pretty a, Pretty b) => Pretty (ImportDirective' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange (ImportDirective' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(KillRange a, KillRange b) => KillRange (ImportDirective' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Null (ImportDirective' n m) Source #

null for import directives holds when everything is imported unchanged (no names are hidden or renamed).

Instance details

Defined in Mikan.Syntax.Common

(NFData a, NFData b) => NFData (ImportDirective' a b) Source #

Ranges are not forced.

Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ImportDirective' a b -> () #

Monoid (ImportDirective' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup (ImportDirective' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

(Show m, Show n) => Show (ImportDirective' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

(Eq m, Eq n) => Eq (ImportDirective' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

data ImportedName' n m Source #

An imported name can be a module or a defined name.

Constructors

ImportedModule m

Imported module name of type m.

ImportedName n

Imported name of type n.

Instances

Instances details
PrettyTCM ImportedName Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

(Pretty a, Pretty b) => Pretty (ImportedName' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(HasRange a, HasRange b) => HasRange (ImportedName' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(KillRange a, KillRange b) => KillRange (ImportedName' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(EmbPrj a, EmbPrj b) => EmbPrj (ImportedName' a b) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

(NFData a, NFData b) => NFData (ImportedName' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ImportedName' a b -> () #

(Show m, Show n) => Show (ImportedName' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

(Eq m, Eq n) => Eq (ImportedName' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: ImportedName' n m -> ImportedName' n m -> Bool #

(/=) :: ImportedName' n m -> ImportedName' n m -> Bool #

(Ord m, Ord n) => Ord (ImportedName' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

newtype InteractionId Source #

Constructors

InteractionId 

Fields

Instances

Instances details
EncodeTCM InteractionId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

Pretty InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

ToConcrete InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs InteractionId 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => InteractionId -> m (ConOfAbs InteractionId) Source #

bindToConcrete :: MonadToConcrete m => InteractionId -> (ConOfAbs InteractionId -> m b) -> m b Source #

HasFresh InteractionId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

PrettyTCM InteractionId Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

ToJSON InteractionId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

NFData InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: InteractionId -> () #

NFData InteractionPoints Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

Methods

rnf :: InteractionPoints -> () #

Enum InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Num InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Read InteractionId Source # 
Instance details

Defined in Mikan.Interaction.Base

Integral InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Real InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Show InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Common

type ConOfAbs InteractionId Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

data IsAbstract Source #

Abstract or concrete.

Constructors

AbstractDef 
ConcreteDef 

Instances

Instances details
AnyIsAbstract IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

LensIsAbstract IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj IsAbstract Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Boolean IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

IsBool IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: IsAbstract -> () #

Monoid IsAbstract Source #

Default is ConcreteDef.

Instance details

Defined in Mikan.Syntax.Common

Semigroup IsAbstract Source #

Semigroup computes if any of several is an AbstractDef.

Instance details

Defined in Mikan.Syntax.Common

Generic IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep IsAbstract 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsAbstract = D1 ('MetaData "IsAbstract" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "AbstractDef" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConcreteDef" 'PrefixI 'False) (U1 :: Type -> Type))
Show IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsAbstract Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsAbstract = D1 ('MetaData "IsAbstract" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "AbstractDef" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConcreteDef" 'PrefixI 'False) (U1 :: Type -> Type))

data IsInfix Source #

Functions can be defined in both infix and prefix style. See LHS.

Constructors

InfixDef 
PrefixDef 

Instances

Instances details
Show IsInfix Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsInfix Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: IsInfix -> IsInfix -> Bool #

(/=) :: IsInfix -> IsInfix -> Bool #

Ord IsInfix Source # 
Instance details

Defined in Mikan.Syntax.Common

data IsInstance Source #

Is this definition eligible for instance search?

Constructors

InstanceDef KwRange

Range of the instance keyword.

NotInstanceDef 

Instances

Instances details
IsInstanceDef IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj IsInstance Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: IsInstance -> () #

Show IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord IsInstance Source # 
Instance details

Defined in Mikan.Syntax.Common

data IsMacro Source #

Is this a macro definition?

Constructors

MacroDef 
NotMacroDef 

Instances

Instances details
HasRange IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: IsMacro -> () #

Generic IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep IsMacro 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsMacro = D1 ('MetaData "IsMacro" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "MacroDef" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NotMacroDef" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: IsMacro -> Rep IsMacro x #

to :: Rep IsMacro x -> IsMacro #

Show IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: IsMacro -> IsMacro -> Bool #

(/=) :: IsMacro -> IsMacro -> Bool #

Ord IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsMacro Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsMacro = D1 ('MetaData "IsMacro" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "MacroDef" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NotMacroDef" 'PrefixI 'False) (U1 :: Type -> Type))

data IsMain Source #

Constructors

IsMain 
NotMain 

Instances

Instances details
Monoid IsMain Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup IsMain Source #

Conjunctive semigroup (NotMain is absorbing).

Instance details

Defined in Mikan.Syntax.Common

Show IsMain Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsMain Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: IsMain -> IsMain -> Bool #

(/=) :: IsMain -> IsMain -> Bool #

data IsOpaque Source #

Opaque or transparent.

Constructors

OpaqueDef !OpaqueId

This definition is opaque, and it is guarded by the given opaque block.

TransparentDef 

Instances

Instances details
AllAreOpaque IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

LensIsOpaque IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj IsOpaque Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: IsOpaque -> () #

Generic IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep IsOpaque 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsOpaque = D1 ('MetaData "IsOpaque" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "OpaqueDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 OpaqueId)) :+: C1 ('MetaCons "TransparentDef" 'PrefixI 'False) (U1 :: Type -> Type))

Methods

from :: IsOpaque -> Rep IsOpaque x #

to :: Rep IsOpaque x -> IsOpaque #

Show IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsOpaque Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep IsOpaque = D1 ('MetaData "IsOpaque" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "OpaqueDef" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 OpaqueId)) :+: C1 ('MetaCons "TransparentDef" 'PrefixI 'False) (U1 :: Type -> Type))

data JointOpacity Source #

Monoid representing the combined opaque blocks of a Foldable containing possibly-opaque declarations.

Constructors

UniqueOpaque !OpaqueId

Every definition agrees on what opaque block they belong to.

DifferentOpaque !(HashSet OpaqueId)

More than one opaque block was found.

NoOpaque

Nothing here is opaque.

class LensArgInfo a where Source #

Minimal complete definition

getArgInfo, (setArgInfo | mapArgInfo)

Methods

getArgInfo :: a -> ArgInfo Source #

setArgInfo :: ArgInfo -> a -> a Source #

mapArgInfo :: (ArgInfo -> ArgInfo) -> a -> a Source #

Instances

Instances details
LensArgInfo ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensArgInfo Definition Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

LensArgInfo ContextEntry Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base.Types

LensArgInfo (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

LensArgInfo (FlexibleVar a) Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

LensArgInfo (Dom' t e) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Dom

Methods

getArgInfo :: Dom' t e -> ArgInfo Source #

setArgInfo :: ArgInfo -> Dom' t e -> Dom' t e Source #

mapArgInfo :: (ArgInfo -> ArgInfo) -> Dom' t e -> Dom' t e Source #

class LensFixity' a where Source #

Instances

Instances details
LensFixity' Name Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Name

LensFixity' QName Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Name

LensFixity' Fixity' Source # 
Instance details

Defined in Mikan.Syntax.Common

LensFixity' (ThingWithFixity a) Source # 
Instance details

Defined in Mikan.Syntax.Fixity

class LensFreeVariables a where Source #

A lens to access the FreeVariables attribute in data structures. Minimal implementation: getFreeVariables and mapFreeVariables or LensArgInfo.

Minimal complete definition

Nothing

class LensHiding a where Source #

A lens to access the Hiding attribute in data structures. Minimal implementation: getHiding and mapHiding or LensArgInfo.

Minimal complete definition

Nothing

Methods

getHiding :: a -> Hiding Source #

default getHiding :: LensArgInfo a => a -> Hiding Source #

setHiding :: Hiding -> a -> a Source #

mapHiding :: (Hiding -> Hiding) -> a -> a Source #

default mapHiding :: LensArgInfo a => (Hiding -> Hiding) -> a -> a Source #

Instances

Instances details
LensHiding LamBinding Source # 
Instance details

Defined in Mikan.Syntax.Abstract

LensHiding TypedBinding Source # 
Instance details

Defined in Mikan.Syntax.Abstract

LensHiding ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensHiding Hiding Source # 
Instance details

Defined in Mikan.Syntax.Common

LensHiding LamBinding Source # 
Instance details

Defined in Mikan.Syntax.Concrete

LensHiding TypedBinding Source # 
Instance details

Defined in Mikan.Syntax.Concrete

LensHiding ContextEntry Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base.Types

LensHiding (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getHiding :: Arg e -> Hiding Source #

setHiding :: Hiding -> Arg e -> Arg e Source #

mapHiding :: (Hiding -> Hiding) -> Arg e -> Arg e Source #

LensHiding (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

LensHiding (FlexibleVar a) Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

LensHiding a => LensHiding (Named nm a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getHiding :: Named nm a -> Hiding Source #

setHiding :: Hiding -> Named nm a -> Named nm a Source #

mapHiding :: (Hiding -> Hiding) -> Named nm a -> Named nm a Source #

LensHiding (Dom' t e) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Dom

Methods

getHiding :: Dom' t e -> Hiding Source #

setHiding :: Hiding -> Dom' t e -> Dom' t e Source #

mapHiding :: (Hiding -> Hiding) -> Dom' t e -> Dom' t e Source #

class LensNamed a where Source #

Accessor/editor for the nameOf component.

Minimal complete definition

Nothing

Associated Types

type NameOf a Source #

The type of the name

Methods

lensNamed :: Lens' a (Maybe (NameOf a)) Source #

default lensNamed :: forall (f :: Type -> Type) b. (Decoration f, LensNamed b, NameOf b ~ NameOf a, f b ~ a) => Lens' a (Maybe (NameOf a)) Source #

Instances

Instances details
LensNamed a => LensNamed (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type NameOf (Arg a) 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Arg a) = NameOf a

Methods

lensNamed :: Lens' (Arg a) (Maybe (NameOf (Arg a))) Source #

LensNamed (Maybe a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type NameOf (Maybe a) 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Maybe a) = a

Methods

lensNamed :: Lens' (Maybe a) (Maybe (NameOf (Maybe a))) Source #

LensNamed (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type NameOf (Named name a) 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Named name a) = name

Methods

lensNamed :: Lens' (Named name a) (Maybe (NameOf (Named name a))) Source #

LensNamed (Dom' t e) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Dom

Associated Types

type NameOf (Dom' t e) 
Instance details

Defined in Mikan.Syntax.Internal.Dom

type NameOf (Dom' t e) = NamedName

Methods

lensNamed :: Lens' (Dom' t e) (Maybe (NameOf (Dom' t e))) Source #

class LensOrigin a where Source #

A lens to access the Origin attribute in data structures. Minimal implementation: getOrigin and mapOrigin or LensArgInfo.

Minimal complete definition

Nothing

Methods

getOrigin :: a -> Origin Source #

default getOrigin :: LensArgInfo a => a -> Origin Source #

setOrigin :: Origin -> a -> a Source #

mapOrigin :: (Origin -> Origin) -> a -> a Source #

default mapOrigin :: LensArgInfo a => (Origin -> Origin) -> a -> a Source #

Instances

Instances details
LensOrigin ArgInfo Source # 
Instance details

Defined in Mikan.Syntax.Common

LensOrigin Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

LensOrigin AppInfo Source # 
Instance details

Defined in Mikan.Syntax.Info

LensOrigin ContextEntry Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base.Types

LensOrigin (Arg e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getOrigin :: Arg e -> Origin Source #

setOrigin :: Origin -> Arg e -> Arg e Source #

mapOrigin :: (Origin -> Origin) -> Arg e -> Arg e Source #

LensOrigin (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

LensOrigin (Elim' a) Source #

This instance cheats on Proj, use with care. Projs are always assumed to be UserWritten, since they have no ArgInfo. Same for IApply

Instance details

Defined in Mikan.Syntax.Internal.Elim

LensOrigin (FlexibleVar a) Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

LensOrigin (Dom' t e) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Dom

Methods

getOrigin :: Dom' t e -> Origin Source #

setOrigin :: Origin -> Dom' t e -> Dom' t e Source #

mapOrigin :: (Origin -> Origin) -> Dom' t e -> Dom' t e Source #

data MaybePlaceholder e Source #

Placeholders are used to represent the underscores in a section.

Constructors

Placeholder !PositionInName 
NoPlaceholder !(Maybe PositionInName) e

The second argument is used only (but not always) for name parts other than underscores.

Instances

Instances details
Functor MaybePlaceholder Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> MaybePlaceholder a -> MaybePlaceholder b #

(<$) :: a -> MaybePlaceholder b -> MaybePlaceholder a #

Foldable MaybePlaceholder Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => MaybePlaceholder m -> m #

foldMap :: Monoid m => (a -> m) -> MaybePlaceholder a -> m #

foldMap' :: Monoid m => (a -> m) -> MaybePlaceholder a -> m #

foldr :: (a -> b -> b) -> b -> MaybePlaceholder a -> b #

foldr' :: (a -> b -> b) -> b -> MaybePlaceholder a -> b #

foldl :: (b -> a -> b) -> b -> MaybePlaceholder a -> b #

foldl' :: (b -> a -> b) -> b -> MaybePlaceholder a -> b #

foldr1 :: (a -> a -> a) -> MaybePlaceholder a -> a #

foldl1 :: (a -> a -> a) -> MaybePlaceholder a -> a #

toList :: MaybePlaceholder a -> [a] #

null :: MaybePlaceholder a -> Bool #

length :: MaybePlaceholder a -> Int #

elem :: Eq a => a -> MaybePlaceholder a -> Bool #

maximum :: Ord a => MaybePlaceholder a -> a #

minimum :: Ord a => MaybePlaceholder a -> a #

sum :: Num a => MaybePlaceholder a -> a #

product :: Num a => MaybePlaceholder a -> a #

Traversable MaybePlaceholder Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> MaybePlaceholder a -> f (MaybePlaceholder b) #

sequenceA :: Applicative f => MaybePlaceholder (f a) -> f (MaybePlaceholder a) #

mapM :: Monad m => (a -> m b) -> MaybePlaceholder a -> m (MaybePlaceholder b) #

sequence :: Monad m => MaybePlaceholder (m a) -> m (MaybePlaceholder a) #

Pretty a => Pretty (MaybePlaceholder a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Pretty

ExprLike a => ExprLike (MaybePlaceholder a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

HasRange a => HasRange (MaybePlaceholder a) Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange a => KillRange (MaybePlaceholder a) Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData a => NFData (MaybePlaceholder a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: MaybePlaceholder a -> () #

Show e => Show (MaybePlaceholder e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq e => Eq (MaybePlaceholder e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord e => Ord (MaybePlaceholder e) Source # 
Instance details

Defined in Mikan.Syntax.Common

data MetaId Source #

Meta-variable identifiers use the same structure as NameIds.

Constructors

MetaId 

Instances

Instances details
EncodeTCM MetaId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

Pretty MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

GetDefs MetaId Source # 
Instance details

Defined in Mikan.Syntax.Internal.Defs

Methods

getDefs :: (Monoid m, ExpandCase LiftedRep m) => (MetaId -> Maybe Term) -> (QName -> m) -> MetaId -> m Source #

NamesIn MetaId Source # 
Instance details

Defined in Mikan.Syntax.Internal.Names

Methods

namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> MetaId -> m Source #

Reify MetaId Source # 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo MetaId 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

HasFresh MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

UnFreezeMeta MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.MetaVars

Methods

unfreezeMeta :: MonadMetaSolver m => MetaId -> m () Source #

PrettyTCM MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => MetaId -> m Doc Source #

FromTerm MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

PrimTerm MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

PrimType MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

ToTerm MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Primitive

EmbPrj MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Unquote MetaId Source # 
Instance details

Defined in Mikan.TypeChecking.Unquote

ToJSON MetaId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

NFData MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: MetaId -> () #

Enum MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep MetaId 
Instance details

Defined in Mikan.Syntax.Common

type Rep MetaId = D1 ('MetaData "MetaId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "MetaId" 'PrefixI 'True) (S1 ('MetaSel ('Just "metaId") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Just "metaModule") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

Methods

from :: MetaId -> Rep MetaId x #

to :: Rep MetaId x -> MetaId #

Show MetaId Source #

The record selectors are not included in the resulting strings.

Instance details

Defined in Mikan.Syntax.Common

Eq MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: MetaId -> MetaId -> Bool #

(/=) :: MetaId -> MetaId -> Bool #

Ord MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Hashable MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

hashWithSalt :: Int -> MetaId -> Int #

hash :: MetaId -> Int #

Singleton MetaId MetaSet Source # 
Instance details

Defined in Mikan.TypeChecking.Free.Base

InstantiateFull (Judgement MetaId) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

type ReifiesTo MetaId Source # 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

type Rep MetaId Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep MetaId = D1 ('MetaData "MetaId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "MetaId" 'PrefixI 'True) (S1 ('MetaSel ('Just "metaId") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Just "metaModule") 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

data NameId Source #

The unique identifier of a name. Second argument is the top-level module identifier.

Constructors

NameId !Word64 !ModuleNameHash 

Instances

Instances details
Pretty NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

HasFresh NameId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

EmbPrj NameId Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: NameId -> () #

Enum NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep NameId 
Instance details

Defined in Mikan.Syntax.Common

type Rep NameId = D1 ('MetaData "NameId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "NameId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

Methods

from :: NameId -> Rep NameId x #

to :: Rep NameId x -> NameId #

Show NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: NameId -> NameId -> Bool #

(/=) :: NameId -> NameId -> Bool #

Ord NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Hashable NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

hashWithSalt :: Int -> NameId -> Int #

hash :: NameId -> Int #

type Rep NameId Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep NameId = D1 ('MetaData "NameId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "NameId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

type family NameOf a Source #

The type of the name

Instances

Instances details
type NameOf (Arg a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Arg a) = NameOf a
type NameOf (Maybe a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Maybe a) = a
type NameOf (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Named name a) = name
type NameOf (Dom' t e) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Dom

type NameOf (Dom' t e) = NamedName

data Named name a Source #

Something potentially carrying a name.

Constructors

Named 

Fields

Instances

Instances details
MapNamedArgPattern NAP Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP Source #

MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

Instance details

Defined in Mikan.Syntax.Internal.Pattern

PatternLike a b => PatternLike a (Named x b) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

foldrPattern :: Monoid m => (Pattern' a -> m -> m) -> Named x b -> m Source #

traversePatternM :: Monad m => (Pattern' a -> m (Pattern' a)) -> (Pattern' a -> m (Pattern' a)) -> Named x b -> m (Named x b) Source #

Pretty e => Pretty (Named_ e) Source # 
Instance details

Defined in Mikan.Syntax.Common

HasDefP a => HasDefP (Named_ a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

hasDefP :: Named_ a -> Bool Source #

PatternVars (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Associated Types

type PatternVarOut (NamedArg (Pattern' a)) 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

PrettyTCM (NamedArg Expr) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (NamedArg Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (Named_ Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

NormaliseProjP a => NormaliseProjP (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Records

Methods

normaliseProjP :: HasConstInfo m => Named_ a -> m (Named_ a) Source #

Apply [NamedArg (Pattern' a)] Source #

Make sure we only drop variable patterns.

Instance details

Defined in Mikan.TypeChecking.Substitute

DeBruijn a => DeBruijn (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute.DeBruijn

IApplyVars p => IApplyVars (NamedArg p) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope.Path

Methods

iApplyVars :: NamedArg p -> [Int] Source #

Decoration (Named name) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverseF :: Functor m => (a -> m b) -> Named name a -> m (Named name b) Source #

distributeF :: Functor m => Named name (m a) -> m (Named name a) Source #

Functor (Named name) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> Named name a -> Named name b #

(<$) :: a -> Named name b -> Named name a #

Foldable (Named name) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => Named name m -> m #

foldMap :: Monoid m => (a -> m) -> Named name a -> m #

foldMap' :: Monoid m => (a -> m) -> Named name a -> m #

foldr :: (a -> b -> b) -> b -> Named name a -> b #

foldr' :: (a -> b -> b) -> b -> Named name a -> b #

foldl :: (b -> a -> b) -> b -> Named name a -> b #

foldl' :: (b -> a -> b) -> b -> Named name a -> b #

foldr1 :: (a -> a -> a) -> Named name a -> a #

foldl1 :: (a -> a -> a) -> Named name a -> a #

toList :: Named name a -> [a] #

null :: Named name a -> Bool #

length :: Named name a -> Int #

elem :: Eq a => a -> Named name a -> Bool #

maximum :: Ord a => Named name a -> a #

minimum :: Ord a => Named name a -> a #

sum :: Num a => Named name a -> a #

product :: Num a => Named name a -> a #

Traversable (Named name) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> Named name a -> f (Named name b) #

sequenceA :: Applicative f => Named name (f a) -> f (Named name a) #

mapM :: Monad m => (a -> m b) -> Named name a -> m (Named name b) #

sequence :: Monad m => Named name (m a) -> m (Named name a) #

SubstExpr a => SubstExpr (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract

Methods

substExpr :: [(Name, Expr)] -> Named name a -> Named name a Source #

IsProjP a => IsProjP (Named n a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Name

APatternLike a => APatternLike (Named n a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Associated Types

type ADotT (Named n a) 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

type ADotT (Named n a) = ADotT a

Methods

foldrAPattern :: Monoid m => (Pattern' (ADotT (Named n a)) -> m -> m) -> Named n a -> m Source #

traverseAPatternM :: Monad m => (Pattern' (ADotT (Named n a)) -> m (Pattern' (ADotT (Named n a)))) -> (Pattern' (ADotT (Named n a)) -> m (Pattern' (ADotT (Named n a)))) -> Named n a -> m (Named n a) Source #

DeclaredNames a => DeclaredNames (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

Methods

declaredNames :: Collection KName m => Named name a -> m Source #

ExprLike a => ExprLike (Named x a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

LensHiding a => LensHiding (Named nm a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getHiding :: Named nm a -> Hiding Source #

setHiding :: Hiding -> Named nm a -> Named nm a Source #

mapHiding :: (Hiding -> Hiding) -> Named nm a -> Named nm a Source #

LensNamed (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type NameOf (Named name a) 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Named name a) = name

Methods

lensNamed :: Lens' (Named name a) (Maybe (NameOf (Named name a))) Source #

ExprLike a => ExprLike (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

Methods

mapExpr :: (Expr -> Expr) -> Named name a -> Named name a Source #

foldExpr :: Monoid m => (Expr -> m) -> Named name a -> m Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> Named name a -> m (Named name a) Source #

CPatternLike p => CPatternLike (Named n p) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Pattern

Methods

foldrCPattern :: Monoid m => (Pattern -> m -> m) -> Named n p -> m Source #

traverseCPatternA :: Applicative m => (Pattern -> m Pattern -> m Pattern) -> Named n p -> m (Named n p) Source #

traverseCPatternM :: Monad m => (Pattern -> m Pattern) -> (Pattern -> m Pattern) -> Named n p -> m (Named n p) Source #

IsWithP p => IsWithP (Named n p) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Pattern

Methods

isWithP :: Named n p -> Maybe (Named n p) Source #

NamesIn a => NamesIn (Named n a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Names

Methods

namesAndMetasIn' :: Monoid m => (Either QName MetaId -> m) -> Named n a -> m Source #

CountPatternVars a => CountPatternVars (Named x a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

countPatternVars :: Named x a -> Int Source #

HasRange a => HasRange (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: Named name a -> Range Source #

(KillRange name, KillRange a) => KillRange (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

killRange :: KillRangeT (Named name a) Source #

SetRange a => SetRange (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

setRange :: Range -> Named name a -> Named name a Source #

ToConcrete a => ToConcrete (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs (Named name a) 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type ConOfAbs (Named name a) = Named name (ConOfAbs a)

Methods

toConcrete :: MonadToConcrete m => Named name a -> m (ConOfAbs (Named name a)) Source #

bindToConcrete :: MonadToConcrete m => Named name a -> (ConOfAbs (Named name a) -> m b) -> m b Source #

ToAbstract c => ToAbstract (Named name c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

Associated Types

type AbsOfCon (Named name c) 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type AbsOfCon (Named name c) = Named name (AbsOfCon c)

Methods

toAbstract :: Named name c -> ScopeM (AbsOfCon (Named name c)) Source #

Reify i => Reify (Named n i) Source # 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

Associated Types

type ReifiesTo (Named n i) 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

type ReifiesTo (Named n i) = Named n (ReifiesTo i)

Methods

reify :: MonadReify m => Named n i -> m (ReifiesTo (Named n i)) Source #

reifyWhen :: MonadReify m => Bool -> Named n i -> m (ReifiesTo (Named n i)) Source #

ToAbstract r => ToAbstract (Named name r) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

Associated Types

type AbsOfRef (Named name r) 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef (Named name r) = Named name (AbsOfRef r)

Methods

toAbstract :: MonadReflectedToAbstract m => Named name r -> m (AbsOfRef (Named name r)) Source #

AddContext (List1 (NamedArg Name), Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (NamedArg Name), Type) -> m a -> m a Source #

AddContext ([NamedArg Name], Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source #

ExpandPatternSynonyms a => ExpandPatternSynonyms (Named n a) Source # 
Instance details

Defined in Mikan.TypeChecking.Patterns.Abstract

Methods

expandPatternSynonyms :: Named n a -> TCM (Named n a) Source #

InstantiateFull t => InstantiateFull (Named name t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

instantiateFull' :: Named name t -> ReduceM (Named name t) Source #

Normalise t => Normalise (Named name t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

normalise' :: Named name t -> ReduceM (Named name t) Source #

Simplify t => Simplify (Named name t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

simplify' :: Named name t -> ReduceM (Named name t)

IsFlexiblePattern a => IsFlexiblePattern (Named name a) Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS

(EmbPrj s, EmbPrj t) => EmbPrj (Named s t) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Methods

icode :: Named s t -> S Word32 Source #

icod_ :: Named s t -> S Word32 Source #

value :: Word32 -> R (Named s t) Source #

Subst a => Subst (Named name a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

Associated Types

type SubstArg (Named name a) 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Named name a) = SubstArg a

Methods

applySubst :: Substitution' (SubstArg (Named name a)) -> Named name a -> Named name a Source #

PiApplyArgs a => PiApplyArgs (Named n a) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope

Methods

toPiArgs :: Named n a -> [Term] Source #

(NFData name, NFData a) => NFData (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Named name a -> () #

(Show name, Show a) => Show (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> Named name a -> ShowS #

show :: Named name a -> String #

showList :: [Named name a] -> ShowS #

(Eq name, Eq a) => Eq (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Named name a -> Named name a -> Bool #

(/=) :: Named name a -> Named name a -> Bool #

(Ord name, Ord a) => Ord (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

compare :: Named name a -> Named name a -> Ordering #

(<) :: Named name a -> Named name a -> Bool #

(<=) :: Named name a -> Named name a -> Bool #

(>) :: Named name a -> Named name a -> Bool #

(>=) :: Named name a -> Named name a -> Bool #

max :: Named name a -> Named name a -> Named name a #

min :: Named name a -> Named name a -> Named name a #

PatternToExpr p e => PatternToExpr (Named n p) (Named n e) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

patToExpr :: Named n p -> Reader Hiding (Named n e) Source #

TermToPattern a b => TermToPattern (Named c a) (Named c b) Source # 
Instance details

Defined in Mikan.TypeChecking.Patterns.Internal

Methods

termToPattern :: Named c a -> TCM (Named c b) Source #

type PatternVarOut (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

type ADotT (Named n a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

type ADotT (Named n a) = ADotT a
type NameOf (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type NameOf (Named name a) = name
type ConOfAbs (Named name a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type ConOfAbs (Named name a) = Named name (ConOfAbs a)
type AbsOfCon (Named name c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type AbsOfCon (Named name c) = Named name (AbsOfCon c)
type ReifiesTo (Named n i) Source # 
Instance details

Defined in Mikan.Syntax.Translation.InternalToAbstract

type ReifiesTo (Named n i) = Named n (ReifiesTo i)
type AbsOfRef (Named name r) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ReflectedToAbstract

type AbsOfRef (Named name r) = Named name (AbsOfRef r)
type SubstArg (Named name a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Named name a) = SubstArg a

type NamedArg a = Arg (Named_ a) Source #

Only Hidden arguments can have names.

type NamedName = WithOrigin (Ranged ArgName) Source #

Standard argument names.

type Named_ = Named NamedName Source #

Standard naming.

type Nat = Int Source #

Number >= 0.

type Nat1 = Nat Source #

Number >= 1.

type Notation = [NotationPart] Source #

Notation as provided by the syntax declaration.

data NotationPart Source #

Notation parts.

Constructors

IdPart RString

An identifier part. For instance, for _+_ the only identifier part is +.

HolePart Range (NamedArg (Ranged Int))

A hole: a place where argument expressions can be written. For instance, for _+_ the two underscores are holes, and for syntax Σ A (λ x → B) = B , A , x the variables A and B are holes. The number is the position of the hole, counting from zero. For instance, the number for A is 0, and the number for B is 1.

VarPart Range (Ranged BoundVariablePosition)

A bound variable.

The first range is the range of the variable in the right-hand side of the syntax declaration, and the second range is the range of the variable in the left-hand side.

WildPart (Ranged BoundVariablePosition)

A wildcard (an underscore in binding position).

Instances

Instances details
Pretty NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

SetRange NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj NotationPart Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: NotationPart -> () #

Show NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord NotationPart Source # 
Instance details

Defined in Mikan.Syntax.Common

data OpaqueId Source #

The unique identifier of an opaque block. Second argument is the top-level module identifier.

Instances

Instances details
Pretty OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

HasFresh OpaqueId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

EmbPrj OpaqueId Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: OpaqueId -> () #

Enum OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep OpaqueId 
Instance details

Defined in Mikan.Syntax.Common

type Rep OpaqueId = D1 ('MetaData "OpaqueId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "OpaqueId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

Methods

from :: OpaqueId -> Rep OpaqueId x #

to :: Rep OpaqueId x -> OpaqueId #

Show OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Hashable OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

hashWithSalt :: Int -> OpaqueId -> Int #

hash :: OpaqueId -> Int #

type Rep OpaqueId Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep OpaqueId = D1 ('MetaData "OpaqueId" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "OpaqueId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 Word64) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'SourceUnpack 'SourceStrict 'DecidedStrict) (Rec0 ModuleNameHash)))

data Origin Source #

Origin of arguments.

Constructors

UserWritten

From the source file / user input. (Preserve!)

Inserted

E.g. inserted hidden arguments.

Reflected

Produced by the reflection machinery.

CaseSplit

Produced by an interactive case split.

Substitution

Named application produced to represent a substitution. E.g. "?0 (x = n)" instead of "?0 n"

ExpandedPun

An expanded hidden argument pun.

Generalization

Inserted by the generalization process

ConversionFail

Inserted by the conversion checker in an argument spine at the position where they differ.

Indicates that the argument at this position should always be reified, even if the visibility would be skipped with the current flags.

RecordSelf

Inserted to stand for the record "self" variable when checking a declaration inside a record module.

Instances

Instances details
LensOrigin Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

ChooseFlex Origin Source # 
Instance details

Defined in Mikan.TypeChecking.Rules.LHS.Problem

EmbPrj Origin Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Origin -> () #

Show Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Origin -> Origin -> Bool #

(/=) :: Origin -> Origin -> Bool #

Ord Origin Source # 
Instance details

Defined in Mikan.Syntax.Common

data OverlapMode Source #

The possible overlap modes for an instance, also used for instance candidates.

Constructors

Overlappable

User-written OVERLAPPABLE pragma: this candidate can *be removed* by a more specific candidate.

Overlapping

User-written OVERLAPPING pragma: this candidate can *remove* a less specific candidate.

Overlaps

User-written OVERLAPS pragma: both overlappable and overlapping.

DefaultOverlap

No user-written overlap pragma. This instance can be overlapped by an OVERLAPPING instance, and it can overlap OVERLAPPABLE instances.

Incoherent

User-written INCOHERENT pragma: both overlappable and overlapping; and, if there are multiple candidates after all overlap has been handled, make an arbitrary choice.

FieldOverlap

Overlapping instances in record fields.

Instances

Instances details
HasOverlapMode OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj OverlapMode Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: OverlapMode -> () #

Bounded OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Show OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord OverlapMode Source # 
Instance details

Defined in Mikan.Syntax.Common

data Overlappable Source #

Constructors

YesOverlap 
NoOverlap 

Instances

Instances details
NFData Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Overlappable -> () #

Monoid Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup Overlappable Source #

Just for the Hiding instance. Should never combine different overlapping.

Instance details

Defined in Mikan.Syntax.Common

Bounded Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Show Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord Overlappable Source # 
Instance details

Defined in Mikan.Syntax.Common

data PatternOrCopattern Source #

For a record without eta, which type of matching do we allow?

Constructors

PatternMatching

Can match on the record constructor.

CopatternMatching

Can copattern match using the projections. (Default.)

Instances

Instances details
CopatternMatchingAllowed DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

CopatternMatchingAllowed HasEta Source # 
Instance details

Defined in Mikan.Syntax.Common

CopatternMatchingAllowed PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

PatternMatchingAllowed DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

PatternMatchingAllowed HasEta Source # 
Instance details

Defined in Mikan.Syntax.Common

PatternMatchingAllowed PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange DataOrRecord Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj PatternOrCopattern Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: PatternOrCopattern -> () #

Bounded PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

Show PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord PatternOrCopattern Source # 
Instance details

Defined in Mikan.Syntax.Common

data PositionInName Source #

The position of a name part or underscore in a name.

Constructors

Beginning

The following underscore is at the beginning of the name: _foo.

Middle

The following underscore is in the middle of the name: foo_bar.

End

The following underscore is at the end of the name: foo_.

data PositivityCheck Source #

Positivity check? (Default = True).

Instances

Instances details
KillRange PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj PositivityCheck Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: PositivityCheck -> () #

Monoid PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Bounded PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep PositivityCheck 
Instance details

Defined in Mikan.Syntax.Common

type Rep PositivityCheck = D1 ('MetaData "PositivityCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesPositivityCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoPositivityCheck" 'PrefixI 'False) (U1 :: Type -> Type))
Show PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep PositivityCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep PositivityCheck = D1 ('MetaData "PositivityCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesPositivityCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoPositivityCheck" 'PrefixI 'False) (U1 :: Type -> Type))

type PrecedenceLevel = Double Source #

Precedence levels for operators.

newtype ProblemId Source #

A "problem" consists of a set of constraints and the same constraint can be part of multiple problems.

Constructors

ProblemId Word64 

Instances

Instances details
EncodeTCM ProblemId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

Pretty ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

HasFresh ProblemId Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Base

PrettyTCM ProblemId Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

EmbPrj ProblemId Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

ToJSON ProblemId Source # 
Instance details

Defined in Mikan.Interaction.JSONTop

NFData ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ProblemId -> () #

Enum ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Num ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Integral ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Real ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Show ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord ProblemId Source # 
Instance details

Defined in Mikan.Syntax.Common

data ProjOrigin Source #

Where does a projection come from?

Constructors

ProjPrefix

User wrote a prefix projection.

ProjPostfix

User wrote a postfix projection.

ProjSystem

Projection was generated by the system.

Instances

Instances details
KillRange ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj ProjOrigin Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: ProjOrigin -> () #

Bounded ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep ProjOrigin 
Instance details

Defined in Mikan.Syntax.Common

type Rep ProjOrigin = D1 ('MetaData "ProjOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "ProjPrefix" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ProjPostfix" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ProjSystem" 'PrefixI 'False) (U1 :: Type -> Type)))
Show ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ProjOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep ProjOrigin = D1 ('MetaData "ProjOrigin" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "ProjPrefix" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ProjPostfix" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ProjSystem" 'PrefixI 'False) (U1 :: Type -> Type)))

type RString = Ranged RawName Source #

String with range info.

data Ranged a Source #

Thing with range info.

Constructors

Ranged 

Fields

Instances

Instances details
MapNamedArgPattern NAP Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP Source #

Decoration Ranged Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverseF :: Functor m => (a -> m b) -> Ranged a -> m (Ranged b) Source #

distributeF :: Functor m => Ranged (m a) -> m (Ranged a) Source #

Functor Ranged Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> Ranged a -> Ranged b #

(<$) :: a -> Ranged b -> Ranged a #

Foldable Ranged Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => Ranged m -> m #

foldMap :: Monoid m => (a -> m) -> Ranged a -> m #

foldMap' :: Monoid m => (a -> m) -> Ranged a -> m #

foldr :: (a -> b -> b) -> b -> Ranged a -> b #

foldr' :: (a -> b -> b) -> b -> Ranged a -> b #

foldl :: (b -> a -> b) -> b -> Ranged a -> b #

foldl' :: (b -> a -> b) -> b -> Ranged a -> b #

foldr1 :: (a -> a -> a) -> Ranged a -> a #

foldl1 :: (a -> a -> a) -> Ranged a -> a #

toList :: Ranged a -> [a] #

null :: Ranged a -> Bool #

length :: Ranged a -> Int #

elem :: Eq a => a -> Ranged a -> Bool #

maximum :: Ord a => Ranged a -> a #

minimum :: Ord a => Ranged a -> a #

sum :: Num a => Ranged a -> a #

product :: Num a => Ranged a -> a #

Traversable Ranged Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> Ranged a -> f (Ranged b) #

sequenceA :: Applicative f => Ranged (f a) -> f (Ranged a) #

mapM :: Monad m => (a -> m b) -> Ranged a -> m (Ranged b) #

sequence :: Monad m => Ranged (m a) -> m (Ranged a) #

MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

Instance details

Defined in Mikan.Syntax.Internal.Pattern

ExprLike a => ExprLike (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

Pretty e => Pretty (Named_ e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty a => Pretty (Ranged a) Source #

Ignores range.

Instance details

Defined in Mikan.Syntax.Common

ExprLike a => ExprLike (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

Methods

mapExpr :: (Expr -> Expr) -> Ranged a -> Ranged a Source #

foldExpr :: Monoid m => (Expr -> m) -> Ranged a -> m Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> Ranged a -> m (Ranged a) Source #

IsNoName a => IsNoName (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Name

Methods

isNoName :: Ranged a -> Bool Source #

HasDefP a => HasDefP (Named_ a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

hasDefP :: Named_ a -> Bool Source #

PatternVars (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Associated Types

type PatternVarOut (NamedArg (Pattern' a)) 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

HasRange (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: Ranged a -> Range Source #

KillRange (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Common

ToConcrete a => ToConcrete (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs (Ranged a) 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => Ranged a -> m (ConOfAbs (Ranged a)) Source #

bindToConcrete :: MonadToConcrete m => Ranged a -> (ConOfAbs (Ranged a) -> m b) -> m b Source #

ToAbstract c => ToAbstract (Ranged c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

Associated Types

type AbsOfCon (Ranged c) 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

PrettyTCM (NamedArg Expr) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (NamedArg Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (Named_ Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

NormaliseProjP a => NormaliseProjP (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Records

Methods

normaliseProjP :: HasConstInfo m => Named_ a -> m (Named_ a) Source #

Normalise t => Normalise (Ranged t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

Methods

normalise' :: Ranged t -> ReduceM (Ranged t) Source #

EmbPrj a => EmbPrj (Ranged a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Apply [NamedArg (Pattern' a)] Source #

Make sure we only drop variable patterns.

Instance details

Defined in Mikan.TypeChecking.Substitute

Subst a => Subst (Ranged a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

Associated Types

type SubstArg (Ranged a) 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Ranged a) = SubstArg a
DeBruijn a => DeBruijn (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute.DeBruijn

IApplyVars p => IApplyVars (NamedArg p) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope.Path

Methods

iApplyVars :: NamedArg p -> [Int] Source #

NFData a => NFData (Ranged a) Source #

Ranges are not forced.

Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Ranged a -> () #

Show a => Show (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> Ranged a -> ShowS #

show :: Ranged a -> String #

showList :: [Ranged a] -> ShowS #

Eq a => Eq (Ranged a) Source #

Ignores range.

Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Ranged a -> Ranged a -> Bool #

(/=) :: Ranged a -> Ranged a -> Bool #

Ord a => Ord (Ranged a) Source #

Ignores range.

Instance details

Defined in Mikan.Syntax.Common

Methods

compare :: Ranged a -> Ranged a -> Ordering #

(<) :: Ranged a -> Ranged a -> Bool #

(<=) :: Ranged a -> Ranged a -> Bool #

(>) :: Ranged a -> Ranged a -> Bool #

(>=) :: Ranged a -> Ranged a -> Bool #

max :: Ranged a -> Ranged a -> Ranged a #

min :: Ranged a -> Ranged a -> Ranged a #

AddContext (List1 (NamedArg Name), Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (NamedArg Name), Type) -> m a -> m a Source #

AddContext ([NamedArg Name], Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source #

type PatternVarOut (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

type ConOfAbs (Ranged a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type AbsOfCon (Ranged c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type SubstArg (Ranged a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

type SubstArg (Ranged a) = SubstArg a

type RawName = ShortText Source #

A RawName is some sort of string.

data RecordDirectives' a Source #

Instances

Instances details
DeclaredNames RecordDirectives Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

ToConcrete RecordDirectives Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => RecordDirectives -> m (ConOfAbs RecordDirectives) Source #

bindToConcrete :: MonadToConcrete m => RecordDirectives -> (ConOfAbs RecordDirectives -> m b) -> m b Source #

Functor RecordDirectives' Source # 
Instance details

Defined in Mikan.Syntax.Common

Foldable RecordDirectives' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => RecordDirectives' m -> m #

foldMap :: Monoid m => (a -> m) -> RecordDirectives' a -> m #

foldMap' :: Monoid m => (a -> m) -> RecordDirectives' a -> m #

foldr :: (a -> b -> b) -> b -> RecordDirectives' a -> b #

foldr' :: (a -> b -> b) -> b -> RecordDirectives' a -> b #

foldl :: (b -> a -> b) -> b -> RecordDirectives' a -> b #

foldl' :: (b -> a -> b) -> b -> RecordDirectives' a -> b #

foldr1 :: (a -> a -> a) -> RecordDirectives' a -> a #

foldl1 :: (a -> a -> a) -> RecordDirectives' a -> a #

toList :: RecordDirectives' a -> [a] #

null :: RecordDirectives' a -> Bool #

length :: RecordDirectives' a -> Int #

elem :: Eq a => a -> RecordDirectives' a -> Bool #

maximum :: Ord a => RecordDirectives' a -> a #

minimum :: Ord a => RecordDirectives' a -> a #

sum :: Num a => RecordDirectives' a -> a #

product :: Num a => RecordDirectives' a -> a #

Traversable RecordDirectives' Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> RecordDirectives' a -> f (RecordDirectives' b) #

sequenceA :: Applicative f => RecordDirectives' (f a) -> f (RecordDirectives' a) #

mapM :: Monad m => (a -> m b) -> RecordDirectives' a -> m (RecordDirectives' b) #

sequence :: Monad m => RecordDirectives' (m a) -> m (RecordDirectives' a) #

HasRange a => HasRange (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange a => KillRange (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj a => EmbPrj (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Null a => Null (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData a => NFData (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: RecordDirectives' a -> () #

Show a => Show (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq a => Eq (RecordDirectives' a) Source # 
Instance details

Defined in Mikan.Syntax.Common

type ConOfAbs RecordDirectives Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

data Renaming' n m Source #

Constructors

Renaming 

Fields

Instances

Instances details
(Pretty a, Pretty b) => Pretty (Renaming' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(HasRange a, HasRange b) => HasRange (Renaming' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: Renaming' a b -> Range Source #

(KillRange a, KillRange b) => KillRange (Renaming' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

(NFData a, NFData b) => NFData (Renaming' a b) Source #

Ranges are not forced.

Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Renaming' a b -> () #

(Show m, Show n) => Show (Renaming' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> Renaming' n m -> ShowS #

show :: Renaming' n m -> String #

showList :: [Renaming' n m] -> ShowS #

(Eq m, Eq n) => Eq (Renaming' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Renaming' n m -> Renaming' n m -> Bool #

(/=) :: Renaming' n m -> Renaming' n m -> Bool #

data RewriteEqn' qn nm p e Source #

RewriteEqn' qn p e represents the rewrite and irrefutable with clauses of the LHS. qn stands for the QName of the auxiliary function generated to implement the feature nm is the type of names for pattern variables p is the type of patterns e is the type of expressions

Constructors

Rewrite (List1 (qn, e))
rewrite e
Invert qn (List1 (Named nm (p, e)))
with p <- e in eq
LeftLet (List1 (p, e))
using p <- e

Instances

Instances details
ToAbstract RewriteEqn Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

Functor (RewriteEqn' qn nm p) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> RewriteEqn' qn nm p a -> RewriteEqn' qn nm p b #

(<$) :: a -> RewriteEqn' qn nm p b -> RewriteEqn' qn nm p a #

Foldable (RewriteEqn' qn nm p) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => RewriteEqn' qn nm p m -> m #

foldMap :: Monoid m => (a -> m) -> RewriteEqn' qn nm p a -> m #

foldMap' :: Monoid m => (a -> m) -> RewriteEqn' qn nm p a -> m #

foldr :: (a -> b -> b) -> b -> RewriteEqn' qn nm p a -> b #

foldr' :: (a -> b -> b) -> b -> RewriteEqn' qn nm p a -> b #

foldl :: (b -> a -> b) -> b -> RewriteEqn' qn nm p a -> b #

foldl' :: (b -> a -> b) -> b -> RewriteEqn' qn nm p a -> b #

foldr1 :: (a -> a -> a) -> RewriteEqn' qn nm p a -> a #

foldl1 :: (a -> a -> a) -> RewriteEqn' qn nm p a -> a #

toList :: RewriteEqn' qn nm p a -> [a] #

null :: RewriteEqn' qn nm p a -> Bool #

length :: RewriteEqn' qn nm p a -> Int #

elem :: Eq a => a -> RewriteEqn' qn nm p a -> Bool #

maximum :: Ord a => RewriteEqn' qn nm p a -> a #

minimum :: Ord a => RewriteEqn' qn nm p a -> a #

sum :: Num a => RewriteEqn' qn nm p a -> a #

product :: Num a => RewriteEqn' qn nm p a -> a #

Traversable (RewriteEqn' qn nm p) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> RewriteEqn' qn nm p a -> f (RewriteEqn' qn nm p b) #

sequenceA :: Applicative f => RewriteEqn' qn nm p (f a) -> f (RewriteEqn' qn nm p a) #

mapM :: Monad m => (a -> m b) -> RewriteEqn' qn nm p a -> m (RewriteEqn' qn nm p b) #

sequence :: Monad m => RewriteEqn' qn nm p (m a) -> m (RewriteEqn' qn nm p a) #

(ExprLike qn, ExprLike p, ExprLike e) => ExprLike (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

(Pretty nm, Pretty p, Pretty e) => Pretty (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

pretty :: RewriteEqn' qn nm p e -> Doc Source #

prettyPrec :: Int -> RewriteEqn' qn nm p e -> Doc Source #

prettyList :: [RewriteEqn' qn nm p e] -> Doc Source #

(ExprLike qn, ExprLike e) => ExprLike (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

Methods

mapExpr :: (Expr -> Expr) -> RewriteEqn' qn nm p e -> RewriteEqn' qn nm p e Source #

foldExpr :: Monoid m => (Expr -> m) -> RewriteEqn' qn nm p e -> m Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> RewriteEqn' qn nm p e -> m (RewriteEqn' qn nm p e) Source #

(HasRange qn, HasRange p, HasRange e) => HasRange (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: RewriteEqn' qn nm p e -> Range Source #

(KillRange qn, KillRange nm, KillRange e, KillRange p) => KillRange (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

killRange :: KillRangeT (RewriteEqn' qn nm p e) Source #

(ToConcrete p, ToConcrete a) => ToConcrete (RewriteEqn' qn BindName p a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs (RewriteEqn' qn BindName p a) 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => RewriteEqn' qn BindName p a -> m (ConOfAbs (RewriteEqn' qn BindName p a)) Source #

bindToConcrete :: MonadToConcrete m => RewriteEqn' qn BindName p a -> (ConOfAbs (RewriteEqn' qn BindName p a) -> m b) -> m b Source #

ToAbstract (RewriteEqn' () BindName Pattern Expr) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

(NFData qn, NFData nm, NFData p, NFData e) => NFData (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: RewriteEqn' qn nm p e -> () #

(Show e, Show qn, Show nm, Show p) => Show (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> RewriteEqn' qn nm p e -> ShowS #

show :: RewriteEqn' qn nm p e -> String #

showList :: [RewriteEqn' qn nm p e] -> ShowS #

(Eq e, Eq qn, Eq nm, Eq p) => Eq (RewriteEqn' qn nm p e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: RewriteEqn' qn nm p e -> RewriteEqn' qn nm p e -> Bool #

(/=) :: RewriteEqn' qn nm p e -> RewriteEqn' qn nm p e -> Bool #

type AbsOfCon RewriteEqn Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type ConOfAbs (RewriteEqn' qn BindName p a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type AbsOfCon (RewriteEqn' () BindName Pattern Expr) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

data TerminationCheck Source #

Termination check? (Default = TerminationCheck).

Constructors

TerminationCheck

Run the termination checker.

NoTerminationCheck

Skip termination checking (unsafe).

NonTerminating

Treat as non-terminating.

Terminating

Treat as terminating (unsafe). Same effect as NoTerminationCheck.

Instances

Instances details
NFData TerminationCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: TerminationCheck -> () #

Generic TerminationCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep TerminationCheck 
Instance details

Defined in Mikan.Syntax.Common

type Rep TerminationCheck = D1 ('MetaData "TerminationCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "TerminationCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoTerminationCheck" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NonTerminating" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Terminating" 'PrefixI 'False) (U1 :: Type -> Type)))
Show TerminationCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq TerminationCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep TerminationCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep TerminationCheck = D1 ('MetaData "TerminationCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) ((C1 ('MetaCons "TerminationCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoTerminationCheck" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NonTerminating" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Terminating" 'PrefixI 'False) (U1 :: Type -> Type)))

class Eq a => Underscore a where Source #

Minimal complete definition

underscore

data UniverseCheck Source #

Universe check? (Default is yes).

Instances

Instances details
KillRange UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Null UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

NFData UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: UniverseCheck -> () #

Monoid UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Semigroup UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Bounded UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Enum UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Generic UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Associated Types

type Rep UniverseCheck 
Instance details

Defined in Mikan.Syntax.Common

type Rep UniverseCheck = D1 ('MetaData "UniverseCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesUniverseCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoUniverseCheck" 'PrefixI 'False) (U1 :: Type -> Type))
Show UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

Ord UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep UniverseCheck Source # 
Instance details

Defined in Mikan.Syntax.Common

type Rep UniverseCheck = D1 ('MetaData "UniverseCheck" "Mikan.Syntax.Common" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "YesUniverseCheck" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NoUniverseCheck" 'PrefixI 'False) (U1 :: Type -> Type))

data Using' n m Source #

The using clause of import directive.

Constructors

UseEverything

No using clause given.

Using [ImportedName' n m]

using the specified names.

Instances

Instances details
(Pretty a, Pretty b) => Pretty (Using' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

pretty :: Using' a b -> Doc Source #

prettyPrec :: Int -> Using' a b -> Doc Source #

prettyList :: [Using' a b] -> Doc Source #

(HasRange a, HasRange b) => HasRange (Using' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

getRange :: Using' a b -> Range Source #

(KillRange a, KillRange b) => KillRange (Using' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Null (Using' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

empty :: Using' n m Source #

null :: Using' n m -> Bool Source #

(NFData a, NFData b) => NFData (Using' a b) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: Using' a b -> () #

Monoid (Using' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

mempty :: Using' n m #

mappend :: Using' n m -> Using' n m -> Using' n m #

mconcat :: [Using' n m] -> Using' n m #

Semigroup (Using' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(<>) :: Using' n m -> Using' n m -> Using' n m #

sconcat :: NonEmpty (Using' n m) -> Using' n m #

stimes :: Integral b => b -> Using' n m -> Using' n m #

(Show m, Show n) => Show (Using' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

showsPrec :: Int -> Using' n m -> ShowS #

show :: Using' n m -> String #

showList :: [Using' n m] -> ShowS #

(Eq m, Eq n) => Eq (Using' n m) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: Using' n m -> Using' n m -> Bool #

(/=) :: Using' n m -> Using' n m -> Bool #

data WithHiding a Source #

Decorating something with Hiding information.

Constructors

WithHiding 

Fields

Instances

Instances details
Decoration WithHiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverseF :: Functor m => (a -> m b) -> WithHiding a -> m (WithHiding b) Source #

distributeF :: Functor m => WithHiding (m a) -> m (WithHiding a) Source #

Applicative WithHiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

pure :: a -> WithHiding a #

(<*>) :: WithHiding (a -> b) -> WithHiding a -> WithHiding b #

liftA2 :: (a -> b -> c) -> WithHiding a -> WithHiding b -> WithHiding c #

(*>) :: WithHiding a -> WithHiding b -> WithHiding b #

(<*) :: WithHiding a -> WithHiding b -> WithHiding a #

Functor WithHiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> WithHiding a -> WithHiding b #

(<$) :: a -> WithHiding b -> WithHiding a #

Foldable WithHiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => WithHiding m -> m #

foldMap :: Monoid m => (a -> m) -> WithHiding a -> m #

foldMap' :: Monoid m => (a -> m) -> WithHiding a -> m #

foldr :: (a -> b -> b) -> b -> WithHiding a -> b #

foldr' :: (a -> b -> b) -> b -> WithHiding a -> b #

foldl :: (b -> a -> b) -> b -> WithHiding a -> b #

foldl' :: (b -> a -> b) -> b -> WithHiding a -> b #

foldr1 :: (a -> a -> a) -> WithHiding a -> a #

foldl1 :: (a -> a -> a) -> WithHiding a -> a #

toList :: WithHiding a -> [a] #

null :: WithHiding a -> Bool #

length :: WithHiding a -> Int #

elem :: Eq a => a -> WithHiding a -> Bool #

maximum :: Ord a => WithHiding a -> a #

minimum :: Ord a => WithHiding a -> a #

sum :: Num a => WithHiding a -> a #

product :: Num a => WithHiding a -> a #

Traversable WithHiding Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> WithHiding a -> f (WithHiding b) #

sequenceA :: Applicative f => WithHiding (f a) -> f (WithHiding a) #

mapM :: Monad m => (a -> m b) -> WithHiding a -> m (WithHiding b) #

sequence :: Monad m => WithHiding (m a) -> m (WithHiding a) #

ExprLike a => ExprLike (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Views

LensHiding (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty a => Pretty (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

ExprLike a => ExprLike (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Generic

Methods

mapExpr :: (Expr -> Expr) -> WithHiding a -> WithHiding a Source #

foldExpr :: Monoid m => (Expr -> m) -> WithHiding a -> m Source #

traverseExpr :: Monad m => (Expr -> m Expr) -> WithHiding a -> m (WithHiding a) Source #

TermLike a => TermLike (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Generic

Methods

traverseTermM :: Monad m => (Term -> m Term) -> WithHiding a -> m (WithHiding a) Source #

foldTerm :: Monoid m => (Term -> m) -> WithHiding a -> m Source #

HasRange a => HasRange (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange a => KillRange (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

SetRange a => SetRange (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

ToConcrete a => ToConcrete (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Associated Types

type ConOfAbs (WithHiding a) 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

Methods

toConcrete :: MonadToConcrete m => WithHiding a -> m (ConOfAbs (WithHiding a)) Source #

bindToConcrete :: MonadToConcrete m => WithHiding a -> (ConOfAbs (WithHiding a) -> m b) -> m b Source #

ToAbstract c => ToAbstract (WithHiding c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

Associated Types

type AbsOfCon (WithHiding c) 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

PrettyTCM a => PrettyTCM (WithHiding a) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

Methods

prettyTCM :: MonadPretty m => WithHiding a -> m Doc Source #

Normalise t => Normalise (WithHiding t) Source # 
Instance details

Defined in Mikan.TypeChecking.Reduce

EmbPrj a => EmbPrj (WithHiding a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Subst a => Subst (WithHiding a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

Associated Types

type SubstArg (WithHiding a) 
Instance details

Defined in Mikan.TypeChecking.Substitute

NFData a => NFData (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: WithHiding a -> () #

Show a => Show (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq a => Eq (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: WithHiding a -> WithHiding a -> Bool #

(/=) :: WithHiding a -> WithHiding a -> Bool #

Ord a => Ord (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Common

AddContext (List1 (WithHiding Name), Dom Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (WithHiding Name), Dom Type) -> m a -> m a Source #

AddContext ([WithHiding Name], Dom Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([WithHiding Name], Dom Type) -> m a -> m a Source #

type ConOfAbs (WithHiding a) Source # 
Instance details

Defined in Mikan.Syntax.Translation.AbstractToConcrete

type AbsOfCon (WithHiding c) Source # 
Instance details

Defined in Mikan.Syntax.Translation.ConcreteToAbstract

type SubstArg (WithHiding a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute

data WithOrigin a Source #

Decorating something with Origin information.

Constructors

WithOrigin 

Fields

Instances

Instances details
MapNamedArgPattern NAP Source # 
Instance details

Defined in Mikan.Syntax.Abstract.Pattern

Methods

mapNamedArgPattern :: (NAP -> NAP) -> NAP -> NAP Source #

Decoration WithOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverseF :: Functor m => (a -> m b) -> WithOrigin a -> m (WithOrigin b) Source #

distributeF :: Functor m => WithOrigin (m a) -> m (WithOrigin a) Source #

Functor WithOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fmap :: (a -> b) -> WithOrigin a -> WithOrigin b #

(<$) :: a -> WithOrigin b -> WithOrigin a #

Foldable WithOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

fold :: Monoid m => WithOrigin m -> m #

foldMap :: Monoid m => (a -> m) -> WithOrigin a -> m #

foldMap' :: Monoid m => (a -> m) -> WithOrigin a -> m #

foldr :: (a -> b -> b) -> b -> WithOrigin a -> b #

foldr' :: (a -> b -> b) -> b -> WithOrigin a -> b #

foldl :: (b -> a -> b) -> b -> WithOrigin a -> b #

foldl' :: (b -> a -> b) -> b -> WithOrigin a -> b #

foldr1 :: (a -> a -> a) -> WithOrigin a -> a #

foldl1 :: (a -> a -> a) -> WithOrigin a -> a #

toList :: WithOrigin a -> [a] #

null :: WithOrigin a -> Bool #

length :: WithOrigin a -> Int #

elem :: Eq a => a -> WithOrigin a -> Bool #

maximum :: Ord a => WithOrigin a -> a #

minimum :: Ord a => WithOrigin a -> a #

sum :: Num a => WithOrigin a -> a #

product :: Num a => WithOrigin a -> a #

Traversable WithOrigin Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

traverse :: Applicative f => (a -> f b) -> WithOrigin a -> f (WithOrigin b) #

sequenceA :: Applicative f => WithOrigin (f a) -> f (WithOrigin a) #

mapM :: Monad m => (a -> m b) -> WithOrigin a -> m (WithOrigin b) #

sequence :: Monad m => WithOrigin (m a) -> m (WithOrigin a) #

MapNamedArgPattern a (NamedArg (Pattern' a)) Source #

Modify the content of VarP, and the closest surrounding NamedArg.

Note: the mapNamedArg for Pattern' is not expressible simply by fmap or traverse etc., since ConP has NamedArg subpatterns, which are taken into account by mapNamedArg.

Instance details

Defined in Mikan.Syntax.Internal.Pattern

LensOrigin (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty e => Pretty (Named_ e) Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty a => Pretty (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

IsNoName a => IsNoName (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Concrete.Name

HasDefP a => HasDefP (Named_ a) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Methods

hasDefP :: Named_ a -> Bool Source #

PatternVars (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

Associated Types

type PatternVarOut (NamedArg (Pattern' a)) 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

HasRange a => HasRange (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange a => KillRange (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

SetRange a => SetRange (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

PrettyTCM (NamedArg Expr) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (NamedArg Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

PrettyTCM (Named_ Term) Source # 
Instance details

Defined in Mikan.TypeChecking.Pretty

NormaliseProjP a => NormaliseProjP (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Records

Methods

normaliseProjP :: HasConstInfo m => Named_ a -> m (Named_ a) Source #

EmbPrj a => EmbPrj (WithOrigin a) Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

Apply [NamedArg (Pattern' a)] Source #

Make sure we only drop variable patterns.

Instance details

Defined in Mikan.TypeChecking.Substitute

DeBruijn a => DeBruijn (Named_ a) Source # 
Instance details

Defined in Mikan.TypeChecking.Substitute.DeBruijn

IApplyVars p => IApplyVars (NamedArg p) Source # 
Instance details

Defined in Mikan.TypeChecking.Telescope.Path

Methods

iApplyVars :: NamedArg p -> [Int] Source #

NFData a => NFData (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

rnf :: WithOrigin a -> () #

Show a => Show (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Eq a => Eq (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

Methods

(==) :: WithOrigin a -> WithOrigin a -> Bool #

(/=) :: WithOrigin a -> WithOrigin a -> Bool #

Ord a => Ord (WithOrigin a) Source # 
Instance details

Defined in Mikan.Syntax.Common

AddContext (List1 (NamedArg Name), Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => (List1 (NamedArg Name), Type) -> m a -> m a Source #

AddContext ([NamedArg Name], Type) Source # 
Instance details

Defined in Mikan.TypeChecking.Monad.Context

Methods

addContext :: MonadAddContext m => ([NamedArg Name], Type) -> m a -> m a Source #

type PatternVarOut (NamedArg (Pattern' a)) Source # 
Instance details

Defined in Mikan.Syntax.Internal.Pattern

data Induction Source #

Constructors

Inductive 
CoInductive 

Instances

Instances details
PatternMatchingAllowed Induction Source # 
Instance details

Defined in Mikan.Syntax.Common

Pretty Induction Source # 
Instance details

Defined in Mikan.Syntax.Common

HasRange Induction Source # 
Instance details

Defined in Mikan.Syntax.Common

KillRange Induction Source # 
Instance details

Defined in Mikan.Syntax.Common

EmbPrj Induction Source # 
Instance details

Defined in Mikan.TypeChecking.Serialise.Instances.Common

NFData Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

Methods

rnf :: Induction -> () #

Generic Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

Associated Types

type Rep Induction 
Instance details

Defined in Mikan.Syntax.Common.Aspect

type Rep Induction = D1 ('MetaData "Induction" "Mikan.Syntax.Common.Aspect" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "Inductive" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CoInductive" 'PrefixI 'False) (U1 :: Type -> Type))
Show Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

Eq Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

Ord Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

type Rep Induction Source # 
Instance details

Defined in Mikan.Syntax.Common.Aspect

type Rep Induction = D1 ('MetaData "Induction" "Mikan.Syntax.Common.Aspect" "Mikan-2.9.0-CZbYRMbHmng2A9zjJ31VFu" 'False) (C1 ('MetaCons "Inductive" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CoInductive" 'PrefixI 'False) (U1 :: Type -> Type))

Orphan instances