Skip to content

Instantly share code, notes, and snippets.

@kuribas
Last active December 14, 2020 08:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kuribas/dc0721c819925a85666c4a313224aabd to your computer and use it in GitHub Desktop.
Save kuribas/dc0721c819925a85666c4a313224aabd to your computer and use it in GitHub Desktop.
queryrunner
class QueryRunner query m
data ResultSet query :: *
runQuery :: query -> m (ResultSet query)
-- exposed partialData constructor
partialData :: (Endo query) -> (ReaderT (ResultSet query) m a) -> PartialData query m a
partialData adder extractor = PartialData adder (AppExtractor extractor)
data PartialData query m a =
PartialData
(Endo query) -- query adder
(Extractor query m a) -- result extractor
data Extractor query m a =
AppExtractor (ReaderT resultSet m a) | -- applicative extractor
MonadExtractor (ReaderT resultSet m (PartialData query m a)) --monadic extractor
instance Applicative (PartialData query m) where
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment