module ACME.Yes.PreCure5.Profiles ( PreCure5(..) , allPrecures , introducesHerselfAs , transformationPhraseOf , metamorphoseOf ) where import ACME.Yes.PreCure5.Class import qualified Data.Set as S data PreCure5 = CureDream | CureRouge | CureLemonade | CureMint | CureAqua deriving (Show, Bounded, Enum, Eq, Ord) instance PreCure PreCure5 where allPrecures = S.fromAscList [minBound..maxBound] introducesHerselfAs CureDream = "大いなる希望の力、キュアドリーム!" introducesHerselfAs CureRouge = "情熱の赤い炎、キュアルージュ!" introducesHerselfAs CureLemonade = "はじけるレモンの香り、キュアレモネード!" introducesHerselfAs CureMint = "安らぎの緑の大地、キュアミント!" introducesHerselfAs CureAqua = "知性の青き泉、キュアアクア!" transformationPhraseOf ps = "プリキュア!メタモルフォーゼ!\n" ++ (unlines $ map introducesHerselfAs $ S.toAscList ps) ++ "希望の力と未来の光!\n" ++ "華麗に羽ばたく5つの心!\n" ++ "Yes!プリキュア5!\n" metamorphoseOf :: S.Set PreCure5 -> String metamorphoseOf = transformationPhraseOf