1
1
mirror of https://github.com/qfpl/applied-fp-course.git synced 2024-11-26 06:38:40 +03:00
Added some more breadcrumbs and indication of where to go next for some of the
later levels.
This commit is contained in:
Sean Chalmers 2018-08-31 10:21:01 +10:00
parent a252316c26
commit 7df3a95c75
8 changed files with 21 additions and 4 deletions

View File

@ -107,3 +107,5 @@ liftEither
-> AppM a
liftEither =
error "throwLeft not implemented"
-- Go to 'src/Level05/DB.hs' next.

View File

@ -99,3 +99,5 @@ deleteTopic
-> AppM ()
deleteTopic =
error "Copy your completed 'deleteTopic' and refactor to match the new type signature"
-- Go to 'src/Level05/Core.hs' next.

View File

@ -4,4 +4,7 @@ Handling those `Either` values everywhere is a bit awkward, this exercise
introduces our first monad transformer, ``ExceptT``. Further along, we will add
the concept of a 'transformer stack' and what benefits it can provide.
Start in ``src/Level05/AppM.hs``.
The steps for this level:
1) ``src/Level05/AppM.hs``
2) ``src/Level05/DB.hs``
3) ``src/Level05/Core.hs``

View File

@ -50,3 +50,5 @@ parseJSONConfigFile
-> IO ( Either ConfigError PartialConf )
parseJSONConfigFile =
error "parseJSONConfigFile not implemented"
-- Go to 'src/Level06/Conf.hs' next.

View File

@ -237,3 +237,6 @@ instance Monoid PartialConf where
-- data structure.
instance FromJSON PartialConf where
parseJSON = error "parseJSON for PartialConf not implemented yet."
-- Go to 'src/Level06/Conf/File.hs' next

View File

@ -96,10 +96,10 @@ instance MonadIO AppM where
liftIO :: IO a -> AppM a
liftIO = error "liftIO for AppM not implemented"
-- Move on to ``src/Level07/DB.hs`` after this
liftEither
:: Either Error a
-> AppM a
liftEither =
error "throwLeft not implemented"
-- Move on to ``src/Level07/DB.hs`` after this

View File

@ -95,3 +95,5 @@ deleteTopic
-> AppM ()
deleteTopic =
error "Copy your completed 'deleteTopic' and refactor to match the new type signature"
-- Go on to 'src/Level07/Core.hs' next.

View File

@ -12,4 +12,7 @@ the information in manually in every instance.
Since we already have an AppM type, we're extending with more functionality,
this is what is known as 'stacking' monad transformers.
Start in ``src/Level07/AppM.hs``.
The steps for this level:
1) ``src/Level07/AppM.hs``
2) ``src/Level07/DB.hs``
3) ``src/Level07/Core.hs``