keep the Except effect at the start of the list
This commit is contained in:
parent
8e0d66cab8
commit
f4a45b6c52
2 changed files with 7 additions and 7 deletions
|
@ -146,11 +146,11 @@ private
|
|||
liftFromParser : Eff FromParserIO a -> Eff CompileStop a
|
||||
liftFromParser act =
|
||||
runEff act $ with Union.(::)
|
||||
[\g => send g,
|
||||
handleExcept (\err => throw $ FromParserError err),
|
||||
[handleExcept (\err => throw $ FromParserError err),
|
||||
handleStateIORef !(asksAt STATE defs),
|
||||
handleStateIORef !(asksAt STATE ns),
|
||||
handleStateIORef !(asksAt STATE suf)]
|
||||
handleStateIORef !(asksAt STATE suf),
|
||||
\g => send g]
|
||||
|
||||
private
|
||||
liftErase : Q.Definitions -> Eff Erase a -> Eff CompileStop a
|
||||
|
|
|
@ -41,7 +41,7 @@ FromParserPure = [Except Error, DefsState, StateL NS Mods, NameGen]
|
|||
|
||||
public export
|
||||
FromParserIO : List (Type -> Type)
|
||||
FromParserIO = LoadFile :: FromParserPure
|
||||
FromParserIO = FromParserPure ++ [LoadFile]
|
||||
|
||||
|
||||
export
|
||||
|
@ -66,11 +66,11 @@ fromParserIO : (MonadRec io, HasIO io) =>
|
|||
Eff FromParserIO a -> io (Either Error a)
|
||||
fromParserIO inc seen suf defs act =
|
||||
liftIO $ fromIOErr $ runEff act $ with Union.(::)
|
||||
[handleLoadFileIOE LoadError WrapParseError seen inc,
|
||||
handleExcept (\e => ioLeft e),
|
||||
[handleExcept (\e => ioLeft e),
|
||||
handleStateIORef defs,
|
||||
handleStateIORef !(newIORef [<]),
|
||||
handleStateIORef suf]
|
||||
handleStateIORef suf,
|
||||
handleLoadFileIOE LoadError WrapParseError seen inc]
|
||||
|
||||
|
||||
parameters {auto _ : Functor m} (b : Var n -> m a) (f : PName -> m a)
|
||||
|
|
Loading…
Reference in a new issue