Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Language.Giml.Rewrites.PreInfer.CheckDuplicates
Description
Check for duplicate names
We want to make sure the user does not write the same argument name twice in a give anonymous function, function definition, type definition, and variants names.
We also do not want the same name in pattern captures. (This is not datalog/prolog yet!)
Synopsis
- rewrite :: MonadError PreInferError m => ParsedFile Ann -> m (ParsedFile Ann)
- rewrite' :: forall f m. MonadError PreInferError m => Data (f Ann) => f Ann -> m (f Ann)
- implExpr :: MonadError PreInferError m => Expr Ann -> m (Expr Ann)
- dupPattern :: Pattern -> [[Var]]
- implDef :: MonadError PreInferError m => Definition Ann -> m (Definition Ann)
- implDefs :: MonadError PreInferError m => ParsedFile Ann -> m (ParsedFile Ann)
- duplicates :: Ord b => (a -> b) -> [a] -> [[a]]
- groupOn :: Eq b => (a -> b) -> [a] -> [[a]]
Documentation
rewrite :: MonadError PreInferError m => ParsedFile Ann -> m (ParsedFile Ann) Source #
Check for duplicate names in a File.
rewrite' :: forall f m. MonadError PreInferError m => Data (f Ann) => f Ann -> m (f Ann) Source #
implExpr :: MonadError PreInferError m => Expr Ann -> m (Expr Ann) Source #
dupPattern :: Pattern -> [[Var]] Source #
implDef :: MonadError PreInferError m => Definition Ann -> m (Definition Ann) Source #
implDefs :: MonadError PreInferError m => ParsedFile Ann -> m (ParsedFile Ann) Source #
duplicates :: Ord b => (a -> b) -> [a] -> [[a]] Source #