diff --git a/brat/Brat/Checker/Monad.hs b/brat/Brat/Checker/Monad.hs index 12f15aca..1a5cd1d4 100644 --- a/brat/Brat/Checker/Monad.hs +++ b/brat/Brat/Checker/Monad.hs @@ -83,7 +83,8 @@ mkFork :: String -> Free sig () -> Free sig () mkFork d par = thTrace ("Forking " ++ d) $ Fork d par $ pure () mkYield :: String -> S.Set End -> Free sig () -mkYield desc es = thTrace ("Yielding in " ++ desc ++ "\n " ++ show es) $ Yield (AwaitingAny es) (\_ -> trackM ("woke up " ++ desc) >> Ret ()) +mkYield desc es = thTrace ("Yielding in " ++ desc ++ "\n " ++ show es) $ + Yield (AwaitingAny es) (\_ -> trackM ("woke up " ++ desc) >> Ret ()) -- Commands for synchronous operations data CheckingSig ty where diff --git a/brat/Brat/Error.hs b/brat/Brat/Error.hs index dbccdbb1..31a174a6 100644 --- a/brat/Brat/Error.hs +++ b/brat/Brat/Error.hs @@ -11,9 +11,10 @@ module Brat.Error (ParseError(..) import Brat.FC import Data.Bracket -import Brat.Syntax.Port (PortName) +import Brat.Syntax.Port (End, PortName) import Data.List (intercalate) +import Data.Set (Set, toList) import System.Exit newtype ParseError = PE { pretty :: String } @@ -109,6 +110,8 @@ data ErrorMsg | ThunkLeftUnders String | BracketErr BracketErrMsg | RemainingNatHopes [String] + | NeedToKnow (Set End) + | Both ErrorMsg ErrorMsg instance Show ErrorMsg where show (TypeErr x) = "Type error: " ++ x @@ -194,6 +197,8 @@ instance Show ErrorMsg where show (ThunkLeftUnders unders) = "Expected function to return additional values of type: " ++ unders show (BracketErr msg) = show msg show (RemainingNatHopes hs) = unlines ("Expected to work out values for these holes:":((" " ++) <$> hs)) + show (NeedToKnow ends) = unlines $ "I wanna know what:" : ((' ':) . show <$> toList ends) ++ ["is."] + show (Both err1 err2) = unlines [show err1,""," AND ALSO","",show err2] data Error = Err { fc :: Maybe FC , msg :: ErrorMsg diff --git a/brat/Control/Monad/Freer.hs b/brat/Control/Monad/Freer.hs index ed8b7455..a7ddf59d 100644 --- a/brat/Control/Monad/Freer.hs +++ b/brat/Control/Monad/Freer.hs @@ -13,7 +13,7 @@ import qualified Data.Set as S -- * e -> Unstuck means e has been solved -- * e -> Awaiting es means the problem's been transferred -- * e not in news means no change to e -newtype News = News (M.Map End Stuck) +newtype News = News (M.Map End Stuck) deriving Show updateEnd :: News -> End -> Stuck updateEnd (News m) e = case M.lookup e m of