Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data LevelKit = LevelKit {}
- levelType :: HasBuiltins m => m Type
- isLevelType :: (HasBuiltins m, MonadReduce m) => Type -> m Bool
- levelSucFunction :: TCM (Term -> Term)
- builtinLevelKit :: HasBuiltins m => m LevelKit
- requireLevels :: HasBuiltins m => m LevelKit
- haveLevels :: HasBuiltins m => m Bool
- unLevel :: HasBuiltins m => Term -> m Term
- reallyUnLevelView :: HasBuiltins m => Level -> m Term
- unlevelWithKit :: LevelKit -> Level -> Term
- unConstV :: Term -> (Term -> Term) -> Integer -> Term
- unPlusV :: (Term -> Term) -> PlusLevel -> Term
- maybePrimCon :: TCM Term -> TCM (Maybe ConHead)
- maybePrimDef :: TCM Term -> TCM (Maybe QName)
- levelView :: (HasBuiltins m, MonadReduce m, MonadDebug m) => Term -> m Level
- levelView' :: (HasBuiltins m, MonadReduce m, MonadDebug m) => Term -> m Level
- levelPlusView :: Level -> (Integer, Level)
- levelLowerBound :: Level -> Integer
- subLevel :: Integer -> Level -> Maybe Level
- levelMaxDiff :: Level -> Level -> Maybe Level
- data SingleLevel
- unSingleLevel :: SingleLevel -> Level
- unSingleLevels :: [SingleLevel] -> Level
- levelMaxView :: Level -> NonEmpty SingleLevel
- singleLevelView :: Level -> Maybe SingleLevel
Documentation
isLevelType :: (HasBuiltins m, MonadReduce m) => Type -> m Bool Source #
builtinLevelKit :: HasBuiltins m => m LevelKit Source #
requireLevels :: HasBuiltins m => m LevelKit Source #
Raises an error if no level kit is available.
haveLevels :: HasBuiltins m => m Bool Source #
Checks whether level kit is fully available.
reallyUnLevelView :: HasBuiltins m => Level -> m Term Source #
levelView :: (HasBuiltins m, MonadReduce m, MonadDebug m) => Term -> m Level Source #
levelView' :: (HasBuiltins m, MonadReduce m, MonadDebug m) => Term -> m Level Source #
levelPlusView :: Level -> (Integer, Level) Source #
Given a level l
, find the maximum constant n
such that l = n + l'
levelLowerBound :: Level -> Integer Source #
Given a level l
, find the biggest constant n
such that n <= l
subLevel :: Integer -> Level -> Maybe Level Source #
Given a constant n
and a level l
, find the level l'
such
that l = n + l'
(or Nothing if there is no such level).
Operates on levels in canonical form.
levelMaxDiff :: Level -> Level -> Maybe Level Source #
Given two levels a
and b
, try to decompose the first one as
a = a' ⊔ b
(for the minimal value of a'
).
data SingleLevel Source #
A SingleLevel
is a Level
that cannot be further decomposed as
a maximum a ⊔ b
.
Instances
Eq SingleLevel Source # | |
Defined in Agda.TypeChecking.Level (==) :: SingleLevel -> SingleLevel -> Bool # (/=) :: SingleLevel -> SingleLevel -> Bool # | |
Show SingleLevel Source # | |
Defined in Agda.TypeChecking.Level showsPrec :: Int -> SingleLevel -> ShowS # show :: SingleLevel -> String # showList :: [SingleLevel] -> ShowS # | |
Free SingleLevel Source # | |
Defined in Agda.TypeChecking.Level | |
Subst Term SingleLevel Source # | |
Defined in Agda.TypeChecking.Level applySubst :: Substitution' Term -> SingleLevel -> SingleLevel Source # |
unSingleLevel :: SingleLevel -> Level Source #
unSingleLevels :: [SingleLevel] -> Level Source #
Return the maximum of the given SingleLevel
s
levelMaxView :: Level -> NonEmpty SingleLevel Source #
singleLevelView :: Level -> Maybe SingleLevel Source #