Ich habe eine Weile lang versucht, den Code durch Vorlage Haskell in diesem Beispiel aus dem Yesod in Buch erzeugt zu verstehen:Legendes Code generiert durch Yesod Persistent TH
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Person
name String
age Int
deriving Show
Car
color String
make String
model String
deriving Show
|]
Ich fühle mich wie meistens sehe ich, was los ist (vielen Typ Rangier), aber ein Abschnitt verwirrt mich immer noch:
instance PersistEntity (PersonGeneric backend) where
data instance Unique (PersonGeneric backend) =
data instance EntityField (PersonGeneric backend) typ
= typ ~ KeyBackend backend (PersonGeneric backend) => PersonId |
typ ~ String => PersonName |
typ ~ Int => PersonAge
type instance PersistEntityBackend (PersonGeneric backend) =
backend
die Dateninstanz instance EntityField (PersonGeneric backend) typ
drei Daten Konstrukteuren hat, der Sinn (einen für jede Spalte in der Datenbank) macht, sondern auch nach oben schauen, was die Tilde tut in Haskell, ich kann nicht unterlegen Und was es dort macht. Warum wird die =>
, die normalerweise für die universelle Quantifizierung verwendet wird, nach etwas verwendet, das keine Arten zurückhält?
Bitte lassen Sie mich wissen, wenn ich in irgendeiner Weise klarer sein kann.