{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module ACME.PreCure.Textbook.Smile.Types where import ACME.PreCure.Textbook.Smile.Words import ACME.PreCure.Types.TH data Miyuki = Miyuki deriving (Eq, Show) data Akane = Akane deriving (Eq, Show) data Yayoi = Yayoi deriving (Eq, Show) data Nao = Nao deriving (Eq, Show) data Reika = Reika deriving (Eq, Show) girlInstance [t| Miyuki |] girlName_Miyuki girlInstance [t| Akane |] girlName_Akane girlInstance [t| Yayoi |] girlName_Yayoi girlInstance [t| Nao |] girlName_Nao girlInstance [t| Reika |] girlName_Reika data CureHappy = CureHappy deriving (Eq, Show) data CureSunny = CureSunny deriving (Eq, Show) data CurePeace = CurePeace deriving (Eq, Show) data CureMarch = CureMarch deriving (Eq, Show) data CureBeauty = CureBeauty deriving (Eq, Show) data PrincessHappy = PrincessHappy deriving (Eq, Show) data PrincessSunny = PrincessSunny deriving (Eq, Show) data PrincessPeace = PrincessPeace deriving (Eq, Show) data PrincessMarch = PrincessMarch deriving (Eq, Show) data PrincessBeauty = PrincessBeauty deriving (Eq, Show) data SmilePact cd = SmilePact cd deriving (Eq, Show) -- TODO: Make distinct decors for each PreCure or purification? data CureDecors = CureDecors deriving (Eq, Show) data PrincessCandle cd = PrincessCandle cd deriving (Eq, Show) data RoyalClock cd = RoyalClock cd deriving (Eq, Show) transformedInstanceDefault [t| CureHappy |] cureName_Happy introducesHerselfAs_Happy transformedInstanceDefault [t| CureSunny |] cureName_Sunny introducesHerselfAs_Sunny transformedInstanceDefault [t| CurePeace |] cureName_Peace introducesHerselfAs_Peace transformedInstanceDefault [t| CureMarch |] cureName_March introducesHerselfAs_March transformedInstanceDefault [t| CureBeauty |] cureName_Beauty introducesHerselfAs_Beauty transformedInstance [t| PrincessHappy |] cureName_Happy introducesHerselfAs_Happy_Princess variation_Happy_Princess transformedInstance [t| PrincessSunny |] cureName_Sunny introducesHerselfAs_Sunny_Princess variation_Sunny_Princess transformedInstance [t| PrincessPeace |] cureName_Peace introducesHerselfAs_Peace_Princess variation_Peace_Princess transformedInstance [t| PrincessMarch |] cureName_March introducesHerselfAs_March_Princess variation_March_Princess transformedInstance [t| PrincessBeauty |] cureName_Beauty introducesHerselfAs_Beauty_Princess variation_Beauty_Princess transformedGroupInstanceDefault [t| (CureHappy, CureSunny, CurePeace, CureMarch, CureBeauty) |] groupName_Smile transformedGroupInstance [t| (PrincessHappy, PrincessSunny, PrincessPeace, PrincessMarch, PrincessBeauty) |] groupName_Smile variation_Smile_Princess transformationInstance [t| Miyuki |] [t| SmilePact CureDecors |] [t| CureHappy |] [| CureHappy |] transformationSpeech_Happy transformationInstance [t| Akane |] [t| SmilePact CureDecors |] [t| CureSunny |] [| CureSunny |] transformationSpeech_Sunny transformationInstance [t| Yayoi |] [t| SmilePact CureDecors |] [t| CurePeace |] [| CurePeace |] transformationSpeech_Peace transformationInstance [t| Nao |] [t| SmilePact CureDecors |] [t| CureMarch |] [| CureMarch |] transformationSpeech_March transformationInstance [t| Reika |] [t| SmilePact CureDecors |] [t| CureBeauty |] [| CureBeauty |] transformationSpeech_Beauty transformationInstance [t| (Miyuki, Akane, Yayoi, Nao, Reika) |] [t| SmilePact CureDecors |] [t| (CureHappy, CureSunny, CurePeace, CureMarch, CureBeauty) |] [| (CureHappy, CureSunny, CurePeace, CureMarch, CureBeauty) |] transformationSpeech_Smile transformationInstance [t| (CureHappy, CureSunny, CurePeace, CureMarch, CureBeauty) |] [t| PrincessCandle CureDecors |] [t| (PrincessHappy, PrincessSunny, PrincessPeace, PrincessMarch, PrincessBeauty) |] [| (PrincessHappy, PrincessSunny, PrincessPeace, PrincessMarch, PrincessBeauty) |] transformationSpeech_Smile_Princess purificationInstance [t| CureHappy |] [t| SmilePact CureDecors |] purificationSpeech_Happy purificationInstance [t| CureSunny |] [t| SmilePact CureDecors |] purificationSpeech_Sunny purificationInstance [t| CurePeace |] [t| SmilePact CureDecors |] purificationSpeech_Peace purificationInstance [t| CureMarch |] [t| SmilePact CureDecors |] purificationSpeech_March purificationInstance [t| CureBeauty |] [t| SmilePact CureDecors |] purificationSpeech_Beauty purificationInstance [t| (PrincessHappy, PrincessSunny, PrincessPeace, PrincessMarch, PrincessBeauty) |] [t| RoyalClock CureDecors |] purificationSpeech_Smile