packages feed

usb-id-database-0.4.0.8: System/USB/IDDB/Misc.hs

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE PackageImports    #-}
{-# LANGUAGE UnicodeSyntax     #-}

module System.USB.IDDB.Misc
    ( eitherMaybe
    , swap
    , restOfLine
    ) where

import "base" Data.Either   ( Either, either )
import "base" Data.Function ( ($), const, flip )
import "base" Data.Maybe    ( Maybe(..) )
import "base" Data.Tuple    ( uncurry )
import "base" Prelude       ( String )
import "parsimony" Parsimony      (Parser, manyTill)
import "parsimony" 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