Open charles-cooper opened 7 years ago
Instead of having to do runtime checks to see if a Model has been saved, one could infer it from the type signature.
newtype NullKey = NullKey newtype DBKey = DBKey Int64 data MyModel key = MyModel { pkey :: key, myData :: String } insert :: Model model => Connection -> model NullKey -> IO (model DBKey) update :: Model model => Connection -> model DBKey -> IO (model DBKey) saveAndThenUpdate :: MyModel NullKey -> String -> MyModel DBKey saveAndThenUpdate x string = do -- pseudocode ret <- insert conn myModel ret <- return $ ret { myData = string } ret <- update conn ret return ret
What do you think?
My vote for this, because I've been conditioned by ORM to accept polymorphic records. But, as a newbie, I hated them.
Instead of having to do runtime checks to see if a Model has been saved, one could infer it from the type signature.
What do you think?