{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE CPP #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | -- Module : Text.Syntax.Parser.Instances -- Copyright : 2012 Kei Hibino -- License : BSD3 -- -- Maintainer : ex8k.hibino@gmail.com -- Stability : experimental -- Portability : unknown -- -- This module contains basic parsers instances for 'Syntax'. module Text.Syntax.Parser.Instances () where import Control.Isomorphism.Partial (IsoFunctor((<$>))) import Control.Monad (MonadPlus (mzero)) import Control.Isomorphism.Partial.Ext.Prim (apply') import Text.Syntax.Poly.Instances () #if __GLASGOW_HASKELL__ >= 710 import Prelude hiding ((<$>)) #endif -- | 'IsoFunctor' instance for parsers on 'MonadPlus' context instance MonadPlus m => IsoFunctor m where iso <$> mp = do a <- mp maybe mzero return $ apply' iso a