├── .gitignore ├── Dockerfile ├── LICENSE.md ├── README.md ├── app └── Main.hs ├── duet.cabal ├── examples ├── ack.hs ├── arith.hs ├── bound.hs ├── builtins.hs ├── classes.hs ├── fac.hs ├── factorial.hs ├── folds-strictness.hs ├── folds.hs ├── functor-class.hs ├── gabriel-eq-reason.hs ├── good.hs ├── integers.hs ├── lists.hs ├── monad.hs ├── monoid.hs ├── ord.hs ├── parser.hs ├── pattern-matching.hs ├── placeholders.hs ├── prelude.hs ├── seq.hs ├── sicp.hs ├── simple-class.hs ├── state.hs ├── strict-folds.hs ├── string-pats.hs ├── string-substring.hs ├── syntax-buffet.hs └── terminal.hs ├── images └── duet.svg ├── src ├── Control │ └── Monad │ │ └── Supply.hs └── Duet │ ├── Context.hs │ ├── Errors.hs │ ├── Infer.hs │ ├── Parser.hs │ ├── Printer.hs │ ├── Renamer.hs │ ├── Resolver.hs │ ├── Setup.hs │ ├── Simple.hs │ ├── Stepper.hs │ ├── Supply.hs │ ├── Tokenizer.hs │ └── Types.hs ├── stack.yaml ├── stack.yaml.lock └── test ├── Main.hs └── Spec.hs /.gitignore: -------------------------------------------------------------------------------- 1 | .stack-work 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/README.md -------------------------------------------------------------------------------- /app/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/app/Main.hs -------------------------------------------------------------------------------- /duet.cabal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/duet.cabal -------------------------------------------------------------------------------- /examples/ack.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/ack.hs -------------------------------------------------------------------------------- /examples/arith.hs: -------------------------------------------------------------------------------- 1 | main = 22.0 + 33.0 2 | -------------------------------------------------------------------------------- /examples/bound.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/bound.hs -------------------------------------------------------------------------------- /examples/builtins.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/builtins.hs -------------------------------------------------------------------------------- /examples/classes.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/classes.hs -------------------------------------------------------------------------------- /examples/fac.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/fac.hs -------------------------------------------------------------------------------- /examples/factorial.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/factorial.hs -------------------------------------------------------------------------------- /examples/folds-strictness.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/folds-strictness.hs -------------------------------------------------------------------------------- /examples/folds.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/folds.hs -------------------------------------------------------------------------------- /examples/functor-class.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/functor-class.hs -------------------------------------------------------------------------------- /examples/gabriel-eq-reason.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/gabriel-eq-reason.hs -------------------------------------------------------------------------------- /examples/good.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/good.hs -------------------------------------------------------------------------------- /examples/integers.hs: -------------------------------------------------------------------------------- 1 | main = 3 + ((2 + -3) - 3) 2 | -------------------------------------------------------------------------------- /examples/lists.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/lists.hs -------------------------------------------------------------------------------- /examples/monad.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/monad.hs -------------------------------------------------------------------------------- /examples/monoid.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/monoid.hs -------------------------------------------------------------------------------- /examples/ord.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/ord.hs -------------------------------------------------------------------------------- /examples/parser.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/parser.hs -------------------------------------------------------------------------------- /examples/pattern-matching.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/pattern-matching.hs -------------------------------------------------------------------------------- /examples/placeholders.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/placeholders.hs -------------------------------------------------------------------------------- /examples/prelude.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/prelude.hs -------------------------------------------------------------------------------- /examples/seq.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/seq.hs -------------------------------------------------------------------------------- /examples/sicp.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/sicp.hs -------------------------------------------------------------------------------- /examples/simple-class.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/simple-class.hs -------------------------------------------------------------------------------- /examples/state.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/state.hs -------------------------------------------------------------------------------- /examples/strict-folds.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/strict-folds.hs -------------------------------------------------------------------------------- /examples/string-pats.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/string-pats.hs -------------------------------------------------------------------------------- /examples/string-substring.hs: -------------------------------------------------------------------------------- 1 | main = append (take 2 (drop 7 "Hello, World!")) "!" 2 | -------------------------------------------------------------------------------- /examples/syntax-buffet.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/syntax-buffet.hs -------------------------------------------------------------------------------- /examples/terminal.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/examples/terminal.hs -------------------------------------------------------------------------------- /images/duet.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/images/duet.svg -------------------------------------------------------------------------------- /src/Control/Monad/Supply.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Control/Monad/Supply.hs -------------------------------------------------------------------------------- /src/Duet/Context.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Context.hs -------------------------------------------------------------------------------- /src/Duet/Errors.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Errors.hs -------------------------------------------------------------------------------- /src/Duet/Infer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Infer.hs -------------------------------------------------------------------------------- /src/Duet/Parser.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Parser.hs -------------------------------------------------------------------------------- /src/Duet/Printer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Printer.hs -------------------------------------------------------------------------------- /src/Duet/Renamer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Renamer.hs -------------------------------------------------------------------------------- /src/Duet/Resolver.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Resolver.hs -------------------------------------------------------------------------------- /src/Duet/Setup.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Setup.hs -------------------------------------------------------------------------------- /src/Duet/Simple.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Simple.hs -------------------------------------------------------------------------------- /src/Duet/Stepper.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Stepper.hs -------------------------------------------------------------------------------- /src/Duet/Supply.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Supply.hs -------------------------------------------------------------------------------- /src/Duet/Tokenizer.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Tokenizer.hs -------------------------------------------------------------------------------- /src/Duet/Types.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/src/Duet/Types.hs -------------------------------------------------------------------------------- /stack.yaml: -------------------------------------------------------------------------------- 1 | resolver: lts-20.20 2 | -------------------------------------------------------------------------------- /stack.yaml.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/stack.yaml.lock -------------------------------------------------------------------------------- /test/Main.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/test/Main.hs -------------------------------------------------------------------------------- /test/Spec.hs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisdone-archive/duet/HEAD/test/Spec.hs --------------------------------------------------------------------------------