 class RunJoin a where
 type Result a
 runJoin :: PersistBackend m => a > m (Result a)
 data SelectOneMany one many = SelectOneMany {
 somFilterOne :: [Filter one]
 somOrderOne :: [Order one]
 somFilterMany :: [Filter many]
 somOrderMany :: [Order many]
 somFilterKeys :: [Key one] > Filter many
 somGetKey :: many > Key one
 somIncludeNoMatch :: Bool
 selectOneMany :: ([Key one] > Filter many) > (many > Key one) > SelectOneMany one many
Typeclass
runJoin :: PersistBackend m => a > m (Result a)Source
(PersistEntity one, PersistEntity many, Ord (Key one)) => RunJoin (SelectOneMany one many) 
Onetomany relation
data SelectOneMany one many Source
SelectOneMany  

(PersistEntity one, PersistEntity many, Ord (Key one)) => RunJoin (SelectOneMany one many)  
(PersistEntity one, PersistEntity many, Eq (Key one)) => RunJoin (SelectOneMany one many) 
selectOneMany :: ([Key one] > Filter many) > (many > Key one) > SelectOneMany one manySource