From e42c77513534771b05b626578de2113a10c76ddc Mon Sep 17 00:00:00 2001 From: Martin Fredin Date: Thu, 27 Apr 2023 17:29:13 +0200 Subject: [PATCH] Fix prelude --- src/Main.hs | 88 ++++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index f5dd2eb..417bbab 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -2,46 +2,37 @@ module Main where -import AnnForall (annotateForall) -import Codegen.Codegen (generateCode) -import Compiler (compile) -import Control.Monad (when, (<=<)) -import Data.List.Extra (isSuffixOf) -import Data.Maybe (fromJust, isNothing) -import Desugar.Desugar (desugar) -import GHC.IO.Handle.Text (hPutStrLn) -import Grammar.ErrM (Err) -import Grammar.Layout (resolveLayout) -import Grammar.Par (myLexer, pProgram) -import Grammar.Print (Print, printTree) -import LambdaLifter (lambdaLift) -import Monomorphizer.Monomorphizer (monomorphize) -import Renamer.Renamer (rename) -import ReportForall (reportForall) -import System.Console.GetOpt ( - ArgDescr (NoArg, ReqArg), - ArgOrder (RequireOrder), - OptDescr (Option), - getOpt, - usageInfo, - ) -import System.Directory ( - createDirectory, - doesPathExist, - getDirectoryContents, - removeDirectoryRecursive, - setCurrentDirectory, - ) -import System.Environment (getArgs) -import System.Exit ( - ExitCode (ExitFailure), - exitFailure, - exitSuccess, - exitWith, - ) -import System.IO (stderr) -import System.Process (spawnCommand, waitForProcess) -import TypeChecker.TypeChecker (TypeChecker (Bi, Hm), typecheck) +import AnnForall (annotateForall) +import Codegen.Codegen (generateCode) +import Compiler (compile) +import Control.Monad (when, (<=<)) +import Data.List.Extra (isSuffixOf) +import Data.Maybe (fromJust, isNothing) +import Desugar.Desugar (desugar) +import GHC.IO.Handle.Text (hPutStrLn) +import Grammar.ErrM (Err) +import Grammar.Layout (resolveLayout) +import Grammar.Par (myLexer, pProgram) +import Grammar.Print (Print, printTree) +import LambdaLifter (lambdaLift) +import Monomorphizer.Monomorphizer (monomorphize) +import Renamer.Renamer (rename) +import ReportForall (reportForall) +import System.Console.GetOpt (ArgDescr (NoArg, ReqArg), + ArgOrder (RequireOrder), + OptDescr (Option), getOpt, + usageInfo) +import System.Directory (createDirectory, doesPathExist, + getDirectoryContents, + removeDirectoryRecursive, + setCurrentDirectory) +import System.Environment (getArgs) +import System.Exit (ExitCode (ExitFailure), + exitFailure, exitSuccess, + exitWith) +import System.IO (stderr) +import System.Process (spawnCommand, waitForProcess) +import TypeChecker.TypeChecker (TypeChecker (Bi, Hm), typecheck) main :: IO () main = getArgs >>= parseArgs >>= uncurry main' @@ -88,11 +79,11 @@ chooseTypechecker s options = options{typechecker = tc} tc = case s of "hm" -> pure Hm "bi" -> pure Bi - _ -> Nothing + _ -> Nothing data Options = Options - { help :: Bool - , debug :: Bool + { help :: Bool + , debug :: Bool , typechecker :: Maybe TypeChecker } @@ -166,4 +157,13 @@ printToErr = hPutStrLn stderr fromErr :: Err a -> IO a fromErr = either (\s -> printToErr s >> exitFailure) pure -prelude = "\n\nconst x y = x\n\ndata Bool () where\n True : Bool ()\n False : Bool ()\n\nlt : Int -> Int -> Bool ()\nlt = \\x. \\y. const True (x + y)" +prelude :: String +prelude = unlines + [ "\n" + , "const : a -> b -> a" + , "data Bool () where" + , " False : Bool ()" + , " True : Bool ()" + , "lt : Int -> Int -> Bool ()" + , "lt x y = const True (x + y)" + ]