packages feed

haskell-tools-builtin-refactorings-1.0.1.1: Language/Haskell/Tools/Refactor/Builtin/ExtensionOrganizer/Checkers/UnboxedTuplesChecker.hs

module Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.Checkers.UnboxedTuplesChecker where

import Language.Haskell.Tools.Refactor
import Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.ExtMonad

chkUnboxedTuplesExpr :: CheckNode Expr
chkUnboxedTuplesExpr = conditional chkUnboxedTuplesExpr' UnboxedTuples

chkUnboxedTuplesPat :: CheckNode Pattern
chkUnboxedTuplesPat = conditional chkUnboxedTuplesPat' UnboxedTuples

chkUnboxedTuplesType :: CheckNode Type
chkUnboxedTuplesType = conditional chkUnboxedTuplesType' UnboxedTuples


chkUnboxedTuplesExpr' :: CheckNode Expr
chkUnboxedTuplesExpr' e@(UnboxedTuple        _) = addOccurence UnboxedTuples e
chkUnboxedTuplesExpr' e@(UnboxedTupleSection _) = addOccurence UnboxedTuples e
chkUnboxedTuplesExpr' e = return e

chkUnboxedTuplesPat' :: CheckNode Pattern
chkUnboxedTuplesPat' p@(UnboxTuplePat _) = addOccurence UnboxedTuples p
chkUnboxedTuplesPat' p = return p

chkUnboxedTuplesType' :: CheckNode Type
chkUnboxedTuplesType' t@(UnboxedTupleType _) = addOccurence UnboxedTuples t
chkUnboxedTuplesType' t = return t