diff options
| author | Andreas Källberg <anka.213@gmail.com> | 2020-10-26 16:05:30 +0100 |
|---|---|---|
| committer | Andreas Källberg <anka.213@gmail.com> | 2020-10-26 17:21:22 +0100 |
| commit | 1ff66006b8d928da01a56ca9f930f07b3cb2a01e (patch) | |
| tree | 87c079df07b803f0616ccd5dd6c5328ea662693a | |
| parent | db5ee0b66a1db3a28dad9c74b6fe98d80729fa93 (diff) | |
Fix infinite recursion on error
The implementation was meant to lift from SIO to IO,
but instead it was just the identity function,
which means that `fail = id . fail` and we have an infinite loop.
| -rw-r--r-- | src/compiler/GF/Infra/SIO.hs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/GF/Infra/SIO.hs b/src/compiler/GF/Infra/SIO.hs index 0ce431380..906f39345 100644 --- a/src/compiler/GF/Infra/SIO.hs +++ b/src/compiler/GF/Infra/SIO.hs @@ -60,7 +60,7 @@ instance Monad SIO where SIO m1 >>= xm2 = SIO $ \ h -> m1 h >>= \ x -> unS (xm2 x) h instance Fail.MonadFail SIO where - fail = liftSIO . fail + fail = lift0 . fail instance Output SIO where ePutStr = lift0 . ePutStr |
