-
add monotype checker (or whatever)
-
translate c-- to llvm <-
-
change "Language" to "CMM"
-
rename Language.Parser.Utils to something more reasonable (renamed to Language.Parser.GetPos)
-
LRAnalysis
- abstract out details about registering stuff
- procedure arguments shouldn't be reported as uninitialized
- split LRAnalysis into blockifying and flow analysis
-
Blockifier
- refactor Blockifier
-
FlowAnalysis
- make the errors/warnings cleaner
- add "useless-write" warnings? (dead write)
- errors/warnings should output to stderr
- refactor FlowAnalysis
-
Move CMM.Pretty to CMM.AST.Pretty
-
Pretty types
-
Flattener
- fallthrough should be made explicit
-
add haddock comments
-
CMM
- AST
- Annot
- BlockAnnot
- State
- Blockifier
- Flattener
- GetName
- Maps
- Utils
- Variables
- Control
- Applicative
- FlowAnalysis
- Inference
- BuiltIn
- Preprocess
- State
- State
- Type
- Lexer
- Parser
- GetPos
- Pretty
- Translator
- State
- Utils
- AST
-
ParserTest
-
QuasiQuotes
-
-
Inference preprocessing
- check whether all
subType
s andinstType
s follow the correct order - check correctness
- check whether all
-
Inference
- Type classes
- MPTC
- Type classes
-
Type
- check correctness of lambdize&forall -> removed
-
write unit tests
- for binOp: precedence, associativity etc
-
change
undefined
toerror s
-
draw a diagram for the architecture
- draw a diagram for the overall pipeline