{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module ACME.PreCure.Textbook.HeartCatch.Types where import ACME.PreCure.Textbook.HeartCatch.Words import ACME.PreCure.Types.TH data Tsubomi = Tsubomi deriving (Eq, Show) data Erika = Erika deriving (Eq, Show) data Itsuki = Itsuki deriving (Eq, Show) data Yuri = Yuri deriving (Eq, Show) girlInstance [t| Tsubomi |] girlName_Tsubomi girlInstance [t| Erika |] girlName_Erika girlInstance [t| Itsuki |] girlName_Itsuki girlInstance [t| Yuri |] girlName_Yuri data CureBlossom = CureBlossom deriving (Eq, Show) data CureMarine = CureMarine deriving (Eq, Show) data CureSunshine = CureSunshine deriving (Eq, Show) data CureMoonlight = CureMoonlight deriving (Eq, Show) data SuperCureBlossom = SuperCureBlossom deriving (Eq, Show) data SuperCureMarine = SuperCureMarine deriving (Eq, Show) data SuperCureSunshine = SuperCureSunshine deriving (Eq, Show) data SuperCureMoonlight = SuperCureMoonlight deriving (Eq, Show) data HeartPerfume hs = HeartPerfume hs deriving (Eq, Show) data ShinyPerfume hs = ShinyPerfume hs deriving (Eq, Show) data HeartPot hs = HeartPot hs deriving (Eq, Show) -- TODO: Use distinct name for each heart seed? data HeartSeed = HeartSeed deriving (Eq, Show) data BlossomTakt = BlossomTakt deriving (Eq, Show) data MarineTakt = MarineTakt deriving (Eq, Show) data ShinyTambourine = ShinyTambourine deriving (Eq, Show) data MoonTakt = MoonTakt deriving (Eq, Show) data HeartCatchMirage sps = HeartCatchMirage sps deriving (Eq, Show) data SuperPreCureSeed = SuperPreCureSeed deriving (Eq, Show) transformedInstanceDefault [t| CureBlossom |] cureName_Blossom introducesHerselfAs_Blossom transformedInstanceDefault [t| CureMarine |] cureName_Marine introducesHerselfAs_Marine transformedInstanceDefault [t| CureSunshine |] cureName_Sunshine introducesHerselfAs_Sunshine transformedInstanceDefault [t| CureMoonlight |] cureName_Moonlight introducesHerselfAs_Moonlight transformedInstance [t| SuperCureBlossom |] cureName_Blossom introducesHerselfAs_Blossom variation_SuperBlossom transformedInstance [t| SuperCureMarine |] cureName_Marine introducesHerselfAs_Marine variation_SuperMarine transformedInstance [t| SuperCureSunshine |] cureName_Sunshine introducesHerselfAs_Sunshine variation_SuperSunshine transformedInstance [t| SuperCureMoonlight |] cureName_Moonlight introducesHerselfAs_Moonlight variation_SuperMoonlight transformedGroupInstanceDefault [t| (CureBlossom, CureMarine, CureSunshine, CureMoonlight) |] groupName_HeartCatch transformedGroupInstance [t| (SuperCureBlossom, SuperCureMarine, SuperCureSunshine, SuperCureMoonlight) |] groupName_HeartCatch variation_SuperSilhouette transformationInstance [t| Tsubomi |] [t| HeartPerfume HeartSeed |] [t| CureBlossom |] [| CureBlossom |] transformationSpeech_Blossom transformationInstance [t| Erika |] [t| HeartPerfume HeartSeed |] [t| CureMarine |] [| CureMarine |] transformationSpeech_Marine transformationInstance [t| Itsuki |] [t| ShinyPerfume HeartSeed |] [t| CureSunshine |] [| CureSunshine |] transformationSpeech_Sunshine transformationInstance [t| Yuri |] [t| HeartPot HeartSeed |] [t| CureMoonlight |] [| CureMoonlight |] transformationSpeech_Moonlight transformationInstance [t| (Tsubomi, Erika, Itsuki, Yuri) |] [t| (HeartPerfume HeartSeed, HeartPerfume HeartSeed, ShinyPerfume HeartSeed, HeartPot HeartSeed) |] [t| (CureBlossom, CureMarine, CureSunshine, CureMoonlight) |] [| (CureBlossom, CureMarine, CureSunshine, CureMoonlight) |] transformationSpeech_HeartCatch transformationInstance [t| (CureBlossom, CureMarine, CureSunshine, CureMoonlight) |] [t| HeartCatchMirage SuperPreCureSeed |] [t| (SuperCureBlossom, SuperCureMarine, SuperCureSunshine, SuperCureMoonlight) |] [| (SuperCureBlossom, SuperCureMarine, SuperCureSunshine, SuperCureMoonlight) |] transformationSpeech_HeartCatch_SuperSilhouette purificationInstance [t| CureBlossom |] [t| BlossomTakt |] purificationSpeech_Blossom purificationInstance [t| CureMarine |] [t| MarineTakt |] purificationSpeech_Marine purificationInstance [t| CureSunshine |] [t| ShinyTambourine |] purificationSpeech_Sunshine purificationInstance [t| CureMoonlight |] [t| MoonTakt |] purificationSpeech_Moonlight purificationInstance [t| (CureBlossom, CureMarine, CureSunshine, CureMoonlight) |] [t| HeartCatchMirage SuperPreCureSeed |] purificationSpeech_HeartCatch_SuperSilhouette