{-# LANGUAGE OverloadedStrings #-} module Model.Perfume ( Perfume(..) , csvPerfumes , getCommonPerfumes ) where import Data.Text (Text) import qualified Data.Text as T import Model.URL import CSV data Perfume = Perfume { name :: Text , url :: URL } deriving (Eq, Show) csvPerfumes :: [Perfume] -> Text csvPerfumes = getCsv . map (\perfume -> [name perfume, url perfume]) getCommonPerfumes :: [[Perfume]] -> [Perfume] getCommonPerfumes (perfumes1:perfumesSequences) = filter (\p1 -> all (\perfumes2 -> any (\p2 -> name p1 == name p2) perfumes2 ) perfumesSequences ) perfumes1