hpython-0.1: src/Language/Python/Validate/Error.hs
{-# 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)