import Control.Applicative
import Data.List
import qualified Data.Map.Strict as M
-import Data.Map ((!))
+import Data.Map.Strict ((!))
import qualified Data.Sequence as Q
import Data.Sequence ((|>), (><), Seq( (:|>), (:<|) ) )
import Control.Lens hiding (Level)
nameP :: Parser Name
configLinesP = configLineP `sepBy` endOfLine
-configLineP = (,) <$> (moduleP <* " -> ") <*> (nameP `sepBy` ", ")
+configLineP = (,) <$> moduleP <* " -> " <*> nameP `sepBy` ", "
moduleP = broadcastP <|> flipFlopP <|> conjunctionP
broadcastP = (Broadcast, "broadcaster") <$ "broadcaster"
-flipFlopP = (FlipFlop False, ) <$> ("%" *> nameP)
-conjunctionP = (Conjunction M.empty, ) <$> ("&" *> nameP)
+flipFlopP = (FlipFlop False, ) <$ "%" <*> nameP
+conjunctionP = (Conjunction M.empty, ) <$ "&" <*> nameP
-- namesP = nameP `sepBy` ", "
nameP = many1 letter