{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module ACME.PreCure.Textbook.Dokidoki.Types where import ACME.PreCure.Textbook.Dokidoki.Words import ACME.PreCure.Types.TH data Mana = Mana deriving (Eq, Show) data Rikka = Rikka deriving (Eq, Show) data Alice = Alice deriving (Eq, Show) data Makoto = Makoto deriving (Eq, Show) data Aguri = Aguri deriving (Eq, Show) girlInstance [t| Mana |] girlName_Mana girlInstance [t| Rikka |] girlName_Rikka girlInstance [t| Alice |] girlName_Alice girlInstance [t| Makoto |] girlName_Makoto girlInstance [t| Aguri |] girlName_Aguri data CureHeart = CureHeart deriving (Eq, Show) data CureDiamond = CureDiamond deriving (Eq, Show) data CureRosetta = CureRosetta deriving (Eq, Show) data CureSword = CureSword deriving (Eq, Show) data CureAce = CureAce deriving (Eq, Show) data LovelyCommune_Sharuru cl = LovelyCommune_Sharuru cl deriving (Eq, Show) data LovelyCommune_Raquel cl = LovelyCommune_Raquel cl deriving (Eq, Show) data LovelyCommune_Lance cl = LovelyCommune_Lance cl deriving (Eq, Show) data LovelyCommune_Davi cl = LovelyCommune_Davi cl deriving (Eq, Show) data LoveEyesPalette cl = LoveEyesPalette cl deriving (Eq, Show) -- TODO: Define each distinct cure loveads type? data CureLoveads = CureLoveads deriving (Eq, Show) data LoveKissRouge = LoveKissRouge deriving (Eq, Show) data MagicalLovelyHarp cl = MagicalLovelyHarp cl deriving (Eq, Show) transformedInstanceDefault [t| CureHeart |] cureName_Heart introducesHerselfAs_Heart transformedInstanceDefault [t| CureDiamond |] cureName_Diamond introducesHerselfAs_Diamond transformedInstanceDefault [t| CureRosetta |] cureName_Rosetta introducesHerselfAs_Rosetta transformedInstanceDefault [t| CureSword |] cureName_Sword introducesHerselfAs_Sword transformedInstanceDefault [t| CureAce |] cureName_Ace introducesHerselfAs_Ace transformedGroupInstanceDefault [t| (CureHeart, CureDiamond, CureRosetta, CureSword, CureAce) |] groupName_Dokidoki transformationInstance [t| Mana |] [t| LovelyCommune_Sharuru CureLoveads |] [t| CureHeart |] [| CureHeart |] transformationSpeech_Heart transformationInstance [t| Rikka |] [t| LovelyCommune_Raquel CureLoveads |] [t| CureDiamond |] [| CureDiamond |] transformationSpeech_Diamond transformationInstance [t| Alice |] [t| LovelyCommune_Lance CureLoveads |] [t| CureRosetta |] [| CureRosetta |] transformationSpeech_Rosetta transformationInstance [t| Makoto |] [t| LovelyCommune_Davi CureLoveads |] [t| CureSword |] [| CureSword |] transformationSpeech_Sword transformationInstance [t| Aguri |] [t| LoveEyesPalette CureLoveads |] [t| CureAce |] [| CureAce |] transformationSpeech_Ace transformationInstance [t| (Mana, Rikka, Alice, Makoto) |] [t| ( LovelyCommune_Sharuru CureLoveads , LovelyCommune_Raquel CureLoveads , LovelyCommune_Lance CureLoveads , LovelyCommune_Davi CureLoveads ) |] [t| (CureHeart, CureDiamond, CureRosetta, CureSword) |] [| (CureHeart, CureDiamond, CureRosetta, CureSword) |] transformationSpeech_Dokidoki_Heart_Diamond_Rosetta_Sword transformationInstance [t| (Mana, Rikka, Alice, Makoto, Aguri) |] [t| ( LovelyCommune_Sharuru CureLoveads , LovelyCommune_Raquel CureLoveads , LovelyCommune_Lance CureLoveads , LovelyCommune_Davi CureLoveads , LoveEyesPalette CureLoveads ) |] [t| (CureHeart, CureDiamond, CureRosetta, CureSword, CureAce) |] [| (CureHeart, CureDiamond, CureRosetta, CureSword, CureAce) |] transformationSpeech_Dokidoki purificationInstance [t| CureHeart |] [t| LovelyCommune_Sharuru CureLoveads |] purificationSpeech_Heart purificationInstance [t| CureDiamond |] [t| LovelyCommune_Raquel CureLoveads |] purificationSpeech_Diamond purificationInstance [t| CureRosetta |] [t| LovelyCommune_Lance CureLoveads |] purificationSpeech_Rosetta purificationInstance [t| CureSword |] [t| LovelyCommune_Davi CureLoveads |] purificationSpeech_Sword purificationInstance [t| CureAce |] [t| LoveKissRouge |] purificationSpeech_Ace purificationInstance [t| (CureHeart, CureDiamond, CureRosetta, CureSword, CureAce) |] [t| MagicalLovelyHarp CureLoveads |] purificationSpeech_Dokidoki