content: {-# language FlexibleInstances, MultiParamTypeClasses #-}
  {-# language LambdaCase #-}
  module Language.Python.Validate.Error
    ( module Language.Python.Validate.Indentation.Error
    , module Language.Python.Validate.Scope.Error
    , module Language.Python.Validate.Syntax.Error
    , ValidationError(..)
    )
  where
  
  import Control.Lens.Prism (prism')
  import Language.Python.Validate.Indentation.Error
  import Language.Python.Validate.Scope.Error
  import Language.Python.Validate.Syntax.Error
  
  data ValidationError a
    = IndentationError (IndentationError a)
    | ScopeError (ScopeError a)
    | SyntaxError (SyntaxError a)
    deriving (Eq, Show)
  
  instance AsTabError (ValidationError a) a where
    _TabError = _IndentationError._TabError
  
  instance AsIndentationError (ValidationError a) a where
    _IndentationError =
      prism'
        IndentationError
        (\case; IndentationError a -> Just a; _ -> Nothing)
  
  instance AsScopeError (ValidationError a) a where
    _ScopeError =
      prism'
        ScopeError
        (\case; ScopeError a -> Just a; _ -> Nothing)
  
  instance AsSyntaxError (ValidationError a) a where
    _SyntaxError =
      prism'
        SyntaxError
        (\case; SyntaxError a -> Just a; _ -> Nothing)