{-# LANGUAGE UnicodeSyntax #-} {-# LANGUAGE NoImplicitPrelude #-} module System.USB.IDDB.Misc ( eitherMaybe , swap , restOfLine ) where -- base import Data.Char ( String ) import Data.Either ( Either, either ) import Data.Function ( ($), const, flip ) import Data.Maybe ( Maybe(..) ) import Data.Tuple ( uncurry ) -- parsimony import Parsimony (Parser, manyTill) import Parsimony.Char (anyChar, newline) eitherMaybe ∷ Either r α → Maybe α eitherMaybe = either (const Nothing) Just swap ∷ (α, β) → (β, α) swap = uncurry $ flip (,) restOfLine ∷ Parser String String restOfLine = manyTill anyChar newline