--splitByCriterion :: ChordProgressionDatabase -> String -> [(String, [TimedChordProgression])

getProgressionsInCategoryByCriterion :: ChordProgressionDatabase -> String -> String -> [TimedChordProgression] 
getProgressionsInCategoryByCriterion (ChordProgressionDatabase list) criterion category = map snd (filter (\ (map, _) -> ((==) ((flip Data.Map.lookup) map criterion) (Just category))) list)
getProgressionsInCategoryByCriterion :: ChordProgressionDatabase -> String -> String -> [TimedChordProgression]
getProgressionsInCategoryByCriterion (ChordProgressionDatabase list) criterion category = map snd (filter (\ (map, _) -> ((==) ((flip Data.Map.lookup) map criterion) (Just category))) list)
getProgressionsInCategoryByCriterion (ChordProgressionDatabase list) criterion category = map snd (filter (\ (map, _) -> ((==) ((flip Data.Map.lookup) map criterion) (Just category))) list)