| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Agda.TypeChecking.Rules.LHS
Synopsis
- checkLeftHandSide :: forall a. Call -> Maybe QName -> [NamedArg Pattern] -> Type -> Maybe Substitution -> [ProblemEq] -> (LHSResult -> TCM a) -> TCM a
- data LHSResult = LHSResult {}
- bindAsPatterns :: [AsBinding] -> TCM a -> TCM a
- class IsFlexiblePattern a where
- maybeFlexiblePattern :: (HasConstInfo m, MonadDebug m) => a -> MaybeT m FlexibleVarKind
- isFlexiblePattern :: (HasConstInfo m, MonadDebug m) => a -> m Bool
- data DataOrRecord
- checkSortOfSplitVar :: (MonadTCM m, PureTCM m, MonadError TCErr m, LensSort a, PrettyTCM a, LensSort ty, PrettyTCM ty) => DataOrRecord -> a -> Telescope -> Maybe ty -> m ()
Documentation
Arguments
| :: forall a. Call | Trace, e.g. |
| -> Maybe QName | The name of the definition we are checking. |
| -> [NamedArg Pattern] | The patterns. |
| -> Type | The expected type |
| -> Maybe Substitution | Module parameter substitution from with-abstraction. |
| -> [ProblemEq] | Patterns that have been stripped away by with-desugaring. ^ These should not contain any proper matches. |
| -> (LHSResult -> TCM a) | Continuation. |
| -> TCM a |
Check a LHS. Main function.
checkLeftHandSide a ps a ret checks that user patterns ps eliminate
the type a of the defined function, and calls continuation ret
if successful.
Result of checking the LHS of a clause.
Constructors
| LHSResult | |
Fields
| |
Instances
| InstantiateFull LHSResult Source # | |
Defined in Agda.TypeChecking.Rules.LHS | |
class IsFlexiblePattern a where Source #
A pattern is flexible if it is dotted or implicit, or a record pattern with only flexible subpatterns.
Minimal complete definition
Methods
maybeFlexiblePattern :: (HasConstInfo m, MonadDebug m) => a -> MaybeT m FlexibleVarKind Source #
isFlexiblePattern :: (HasConstInfo m, MonadDebug m) => a -> m Bool Source #
Instances
data DataOrRecord Source #
Instances
| Show DataOrRecord Source # | |
Defined in Agda.TypeChecking.Rules.LHS Methods showsPrec :: Int -> DataOrRecord -> ShowS # show :: DataOrRecord -> String # showList :: [DataOrRecord] -> ShowS # | |
checkSortOfSplitVar :: (MonadTCM m, PureTCM m, MonadError TCErr m, LensSort a, PrettyTCM a, LensSort ty, PrettyTCM ty) => DataOrRecord -> a -> Telescope -> Maybe ty -> m () Source #