churf/tests/TestAnnForall.hs
sebastianselander 7663c7ad4e Squashed commit of the following:
commit 677a200a15
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 15:12:37 2023 +0200

    Removed GC, merge it into main to save correct commit history

commit a720b9ffd8
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 15:09:51 2023 +0200

    Peano

commit 22d9dd8efa
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 14:28:05 2023 +0200

    Fixed incorrect constructor name with Gilliam

commit 63fef958a7
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 14:09:54 2023 +0200

    Improved prelude

commit 7562949909
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri May 5 12:24:13 2023 +0200

    Finally, bug nr4 fixed

commit 513cb34eb5
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 12:22:36 2023 +0200

    back to inj

commit 47cbf12cd1
Merge: 010ca29 747de6a
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri May 5 11:44:17 2023 +0200

    Merge branch 'pattern-matching-with-typechecking' of github.com:bachelor-group-66-systemf/churf into pattern-matching-with-typechecking

commit 010ca29ced
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri May 5 11:44:08 2023 +0200

    Fixed wrong name bug -- samuel

commit 747de6a34e
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri May 5 11:43:17 2023 +0200

    Renaming symbols in desugar, removed incorrect comment in emits

commit fe25f18eb7
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri May 5 11:28:40 2023 +0200

    Fixed naming-cons bug in monomorphizer

commit 4aa72beccb
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Fri May 5 09:02:10 2023 +0200

    Add missing clauses. Still broken

commit 1d551e5874
Author: sebastian <sebastian.selander@gmail.com>
Date:   Fri May 5 00:35:48 2023 +0200

    added alternative better implemenatation of checkBind

commit 0a588c4e14
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu May 4 23:54:19 2023 +0200

    Revert AnnForall change

commit 15025a67f9
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu May 4 23:15:24 2023 +0200

    removed unused imports

commit 988d0dbb53
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu May 4 23:03:11 2023 +0200

    moved stuff

commit 4f21a58200
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu May 4 23:00:51 2023 +0200

    more symbols and changed err msg

commit 0dc06eaf80
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu May 4 22:50:15 2023 +0200

    Parens removed on types and infix symbols work almost, just need to adapt in LLVM

commit c309c439cb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu May 4 21:30:19 2023 +0200

    Fixed bug when freshening types

commit 122bff7436
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu May 4 21:29:24 2023 +0200

    Sugar has arrived

commit c7b76cbbb4
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed May 3 18:56:16 2023 +0200

    Fixed a bug of repeated application of same function to arguments of
    differing types. More bufs appeared

commit 5a28f9d909
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed May 3 17:59:09 2023 +0200

    Bind now does correct subtype check.

commit f8a70b4cf4
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed May 3 17:58:50 2023 +0200

    Improved error messages

commit 4038f34cc5
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed May 3 15:08:07 2023 +0200

    Fixed woring order of monomorphization in ECase

commit e70eae776a
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue May 2 17:25:22 2023 +0200

    Maybe made lets work in monomorphizer 🙃

commit eba91ec646
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon May 1 22:50:37 2023 +0200

    The log folder is now created as well.

commit 22dcbc6a13
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon May 1 22:50:22 2023 +0200

    Various codegen fixes

commit 45578a79b1
Merge: 59da6d8 0452a30
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon May 1 16:14:10 2023 +0200

    Merge branch 'pattern-matching-with-typechecking' of github.com:bachelor-group-66-systemf/churf into pattern-matching-with-typechecking

commit 59da6d8864
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon May 1 16:14:01 2023 +0200

    Fixed printing bug in MorbIr, fixed Monomorphizer forgetting to output constructors on EInj

commit 0452a30409
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon May 1 16:01:39 2023 +0200

    Yoinked newer GC.

commit 3377879dd0
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon May 1 11:57:06 2023 +0200

    Small fix in morphBind

commit 0af2aac61e
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon May 1 11:53:18 2023 +0200

    Removed some warnings, better internal error

commit 6b72d08b94
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon May 1 11:09:23 2023 +0200

    Commented out `customHelperFunctionCuzPoorImplementation` as it is not needed with type annotations.

commit 78af9431b9
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon May 1 11:10:47 2023 +0200

    Remove clang 11

commit 63d805fa13
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon May 1 10:55:34 2023 +0200

    Uncomment prelude

commit 0fb13f59fb
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon May 1 10:47:07 2023 +0200

    Remove bad program

commit 8463dc2887
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 29 21:58:39 2023 +0200

    Small fix to lambda lifter

commit d7a09a720b
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sat Apr 29 17:55:18 2023 +0200

    Fixed more precise type annotation for monomorphizer

commit a87862a99f
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 29 16:02:51 2023 +0200

    Fix sample programs

commit a2f61ea910
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 29 15:56:01 2023 +0200

    Fix missing pattern synonym

commit 619242ccaf
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 29 15:52:37 2023 +0200

    Fix lambda lifter

commit df1a5de04a
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Fri Apr 28 19:45:15 2023 +0200

    Add module to sort definitions

commit de03a2cc34
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 28 14:52:47 2023 +0200

    The code generator can now compile without the GC.

commit f9d28028b5
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 28 14:24:44 2023 +0200

    The GC argument is now passed to the compiler and codegen.

commit ddffe7913c
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 28 14:22:02 2023 +0200

    Added an option to disable the garbage collector (this feature is not implemented fully yet.).

commit 38b88d36b5
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Fri Apr 28 14:20:24 2023 +0200

    Use throwError instead of error

commit e8d37c77cb
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 28 14:10:39 2023 +0200

    Fixed a typo.

commit cb619c96a8
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 28 14:10:22 2023 +0200

    Removed a stupid file

commit 1723796006
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Apr 28 14:01:05 2023 +0200

    renamed and fixed const in prelude

commit b27988b4d8
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Fri Apr 28 14:04:47 2023 +0200

    Add checking for case

commit 22ffdffa5a
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Apr 27 18:59:16 2023 +0200

    Fix pretty printer

commit 072f2206e6
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Apr 28 12:53:29 2023 +0200

    added const body again

commit e42c775135
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Apr 27 17:29:13 2023 +0200

    Fix prelude

commit 3729278041
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 27 16:44:30 2023 +0200

    Unreachable branhces are removed, fixed a nasty bug in monomorphizer 😸

commit 46a4d3d252
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Apr 27 16:01:22 2023 +0200

    Fixed a bug with penums

commit e19c809d5e
Merge: 509b51d 39d0650
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 27 15:09:45 2023 +0200

    Merge branch 'pattern-matching-with-typechecking' of github.com:bachelor-group-66-systemf/churf into pattern-matching-with-typechecking

commit 509b51d2de
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 27 15:09:39 2023 +0200

    No output of wrongly typed cons

commit 39d0650115
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Apr 27 15:06:42 2023 +0200

    Fixed a booleans not being outputted as literals.

commit 579153b679
Merge: 60e12b6 d026dca
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 27 14:02:10 2023 +0200

    Merged

commit 60e12b622e
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 27 13:55:54 2023 +0200

    Using type annotations in case expressions, monomorphizer now handles case expressions without crashing

commit d026dca42f
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Apr 27 13:49:00 2023 +0200

    Attacked the code generator and added bool support.

commit 1a21698772
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Apr 27 12:57:36 2023 +0200

    mono fixier

commit 55fd35d661
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Apr 27 12:49:29 2023 +0200

    mono fix

commit e9852079ab
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Apr 27 12:43:02 2023 +0200

    bool now lit

commit 8782556603
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Apr 27 12:22:20 2023 +0200

    Fix types in pattersgit add .git add .

commit fc306d5f25
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Apr 27 11:43:56 2023 +0200

    Fix pattern types

commit fd418faa5f
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Apr 27 12:18:56 2023 +0200

    introduced lt in prelude

commit 2cb8527848
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Apr 25 23:02:56 2023 +0200

    Rename variables

commit e138cb27ec
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Apr 25 22:59:33 2023 +0200

    Simplify pattern matching

commit 9ffcbf66b9
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Apr 18 15:28:03 2023 +0200

    Added support for running GC profiller.

commit b5384bf2c3
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Apr 25 13:22:33 2023 +0200

    Fix typo

commit 2d96a50219
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 24 10:47:33 2023 +0200

    Change name

commit 804d0da167
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 24 10:10:15 2023 +0200

    Check number of arguments in pattern match

commit 25075ccaac
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Apr 20 15:36:36 2023 +0200

    added simple script for running benchmarks

commit 4bd5801c97
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Apr 18 15:52:33 2023 +0200

    Removed traces

commit 2611ddc2b2
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Apr 18 15:48:25 2023 +0200

    Fixed wrong handeling of EAdd in monomorphizer, as well as more documentation and cleanup

commit 7ab0e65981
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Apr 17 16:05:23 2023 +0200

    removed minor thing in EAdd

commit a23269f907
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon Apr 17 15:53:16 2023 +0200

    Fixed small bug in monomorphizer

commit c2bf6312f6
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Apr 12 16:36:22 2023 +0200

    Monomorphizer now outputs constructors that are matched on but not created

commit 0ab13e5979
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Apr 12 15:15:38 2023 +0200

    Fixed the ordering of data types.

commit 2b7715714e
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Apr 11 18:56:53 2023 +0200

    Use better names

commit 9730552eab
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Apr 11 13:46:54 2023 +0200

    Remove parenthesis from EAnn

commit a109b3010d
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 8 21:52:57 2023 +0200

    Fix bad inference on case expression, and make pretty for report

commit 29de6c49e4
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 8 13:39:00 2023 +0200

    Fix naming

commit 9cb4a620bb
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Apr 8 13:38:30 2023 +0200

    Fix redundant print paren

commit 21b1ba7b1f
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Apr 7 16:01:23 2023 +0200

    Replaced # with $

commit 9c699ecb63
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Apr 6 14:29:30 2023 +0200

    Fixed output of monomorphizer in main

commit 0d30cb80e0
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu Apr 6 14:19:54 2023 +0200

    removed pretty printing of tvars

commit e7cd3b2c3a
Author: Rakarake <51128488+Rakarake@users.noreply.github.com>
Date:   Thu Apr 6 14:12:45 2023 +0200

    Added README section about Nix

commit 90352449f4
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Apr 5 18:25:41 2023 +0200

    added todo for semi monomorphization

commit 05ea23d22c
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Wed Apr 5 17:41:17 2023 +0200

    Fix test error message

commit 9870802371
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 17:34:33 2023 +0200

    Add implicit foralls for bidir, update and unify pipeline

commit 12bca1c32d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Apr 5 12:56:57 2023 +0200

    Added small comment about incorrect subtyping

commit c6e0e40ef1
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Apr 5 03:03:42 2023 +0200

    Monomorphizer now monomorphizes data

commit 5e5d258bb1
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 12:31:29 2023 +0200

    Update readme with identation syntax

commit 077f76eb12
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 12:24:22 2023 +0200

    Separate make file actions

commit e5dc28b282
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 12:11:21 2023 +0200

    Add pdf of grammar

commit a1b1343d67
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 12:04:52 2023 +0200

    Add latex file

commit 03bb6a8534
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 09:42:14 2023 +0200

    Fix sample-program

commit c998241c65
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 09:39:24 2023 +0200

    Fix tests

commit 0d6c5920a9
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 09:24:27 2023 +0200

    Fix type checker

commit cc5755c3a9
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Apr 3 09:24:13 2023 +0200

    Add layout grammar

commit bd02f52795
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 13:48:11 2023 +0200

    Fixed structure a bit morer

commit faffb2744e
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 13:47:35 2023 +0200

    Fixed structure a bit more

commit 6a2ebf4ecd
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 13:46:46 2023 +0200

    Fixed structure a bit

commit 03a486410f
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 13:42:47 2023 +0200

    Added somewhat detailed README

commit aaaff776e0
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 00:42:42 2023 +0200

    Add some boiler plate for warnings

commit 6c180554ec
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Apr 2 00:04:33 2023 +0200

    Reworked order of inference, added prettifier for tvars etc etc.

commit ec8d554af1
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Apr 1 18:45:08 2023 +0200

    Disabled shadowing in pattern match with nice error message, added aux functions

commit 4b14cbdebf
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Apr 1 17:10:26 2023 +0200

    reverted Hindley-Milner type checker to before mutual recursion merge

commit ec57712eec
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 19:43:05 2023 +0200

    Fixed bad names after monomorphizer

commit c6173c0077
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 19:25:48 2023 +0200

    Plus now working in monomorphizer

commit b8f717f39f
Merge: 0749ca0 00e23a1
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 18:59:05 2023 +0200

    Merge branch 'monomorphizer-data' into pattern-matching-with-typechecking

commit 00e23a16dd
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 18:58:33 2023 +0200

    Monomorphization of datatypes done!

commit 0749ca062d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 31 18:28:04 2023 +0200

    Merge in mutual recursion handling

commit b7420b5adb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 31 18:27:30 2023 +0200

    Merge in mutual recursion handling

commit c4f78ca37d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 31 18:26:58 2023 +0200

    Merge in mutual recursion handling

commit e2e469d84e
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 31 18:17:28 2023 +0200

    Added some examples that were shown to our handledare.

commit b0ec5a2333
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 31 18:16:26 2023 +0200

    Started working on a Case Desugar phase.

commit 15c18271ba
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 17:53:56 2023 +0200

    Monomorphizer, fixed problem with type of bind

commit d097cd28e8
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 31 17:02:54 2023 +0200

    New morb tree for internal use in monomorphizer, data types implemented

commit 7d2a0e60d8
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Mar 30 19:07:12 2023 +0200

    Fixes

commit 72352d9619
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Mar 30 18:46:37 2023 +0200

    Use use tevars for bind without type signatures, fix recursive functions

commit 4831205e67
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Mar 30 12:49:27 2023 +0200

    Remove incorrect test

commit 5d2c0e787e
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 30 15:08:40 2023 +0200

    The compiler is now compiled with O3.

commit 9b38c6d804
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 30 12:37:24 2023 +0200

    Main now prints the exit code of the program, as Haskell likes to hide segfaults.

commit b3525db7fd
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 30 12:31:03 2023 +0200

    Integrated the garbage collector.

commit bbe0d77a19
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Mar 30 12:35:47 2023 +0200

    Add signature of inferred bind to allow some mutually defined definitions

commit a37a52d9f8
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Mar 30 11:49:13 2023 +0200

    Apply env to return type. fixes #14

commit 2851c408d1
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 30 11:41:10 2023 +0200

    Added the updated GC.

commit c4477d3df4
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 30 11:38:06 2023 +0200

    moved some funcs to aux, added a universal definition of int and char, updated usages in both tcs

commit 59676605cd
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 30 10:55:01 2023 +0200

    moved injections back to state

commit c34041860d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 30 10:21:04 2023 +0200

    duplicate signatures / declarations correct

commit c4931c3996
Author: sebastian <sebastian.selander@gmail.com>
Date:   Wed Mar 29 22:59:21 2023 +0200

    Fixed bug in EApp, cleaned a bit, added todo for disallowing mutual recursion

commit aa1ff630a5
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Wed Mar 29 22:48:26 2023 +0200

    Fix double vars

commit 343be08a4a
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 29 18:47:14 2023 +0200

    Tried solving bug, failed, added todo message, fixed printing

commit 61f364cd75
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 17:34:47 2023 +0200

    Splat up the codegenerator a bit.

commit 36b6a8f781
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 29 17:32:21 2023 +0200

    removed trace

commit 4efe7cf9a2
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 29 17:30:31 2023 +0200

    inference does not depend on order. mutual recursion still not working correctly

commit 29fcddf44c
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 29 17:05:56 2023 +0200

    Data defs in monomorphizer output environment

commit 53589e8d50
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 16:54:30 2023 +0200

    Made the output from running the compiler a bit clearer.

commit d26bde6a7f
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 16:47:52 2023 +0200

    Added a fun Maybe example!

commit d4115fd2f5
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 29 16:45:30 2023 +0200

    Monomoprhizer handles new types

commit c59cd02361
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Wed Mar 29 16:37:52 2023 +0200

    Lift lambdas in the scrutinized expression

commit 2f12fdd7e2
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 15:29:53 2023 +0200

    Removed a trace.

commit f69151a7ce
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 15:12:33 2023 +0200

    Fixed a bug with pattern matching on literals.

commit 82f1b38f1b
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 14:41:52 2023 +0200

    Removed the Tjabatjena comment that the compiler generated.

commit 100b7b113a
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 29 14:31:24 2023 +0200

    We got pattern matching on data types!

commit 2860d47f11
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 29 13:48:00 2023 +0200

    Case expressions implemented in monomorphizer

commit 4755f434fd
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Wed Mar 29 11:25:45 2023 +0200

    Add test for pattern matching on recursive data types, and remove traces

commit 52db1943bb
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Wed Mar 29 11:12:33 2023 +0200

    Finished new check pattern

commit 76b1c55065
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Mar 28 15:33:03 2023 +0200

    Progress

commit 133cc31e77
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Mar 28 14:36:43 2023 +0200

    Fix lambda lifter

commit 528369c95c
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Mar 27 23:55:04 2023 +0200

    Progress on new checkPattern

commit f20b80cab3
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 28 23:19:04 2023 +0200

    added skomeliation on given type signatures

commit 7c5041d270
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 28 21:52:09 2023 +0200

    added this stupid complex bug to Bugs.md

commit 9e6fe454ce
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 17:57:44 2023 +0200

    reverted back to most close to correct version

commit d8a75d6643
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 17:49:47 2023 +0200

    Solved 30+ WARNINGS!! 😎

commit c77139dfa8
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 17:47:43 2023 +0200

    Added a Malloc instruction.

commit 230a205965
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 17:37:29 2023 +0200

    Fixed wrongly typed functions in the code generator.

commit e87e2d3870
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 17:33:14 2023 +0200

    sneaky buggy fixy

commit 8910d8adc0
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 17:13:51 2023 +0200

    temporary commit incase of breakage

commit 91d6332dc5
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 28 17:14:55 2023 +0200

    Fixed removed args in tree after monomorphizer

commit 92a2ff3235
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 17:13:38 2023 +0200

    Fixed a broken path.

commit 4809cad1cb
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 16:54:11 2023 +0200

    Fixed chars.

commit ba832ba288
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 16:07:39 2023 +0200

    added printTree for monomorphizer

commit cf12c3443d
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 28 15:57:35 2023 +0200

    Main had a weird look

commit a7401f0ee3
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 28 15:55:06 2023 +0200

    Monomorphizer main fix

commit 43a863c153
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 15:44:03 2023 +0200

    fixed coerce type error

commit cca2f853ea
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 15:36:08 2023 +0200

    Added a variable lookup.

commit 5a70286802
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 15:35:34 2023 +0200

    Added a files back.

commit 7f0dab6dcb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 15:35:48 2023 +0200

    adapted changes to work

commit 59d9be87cb
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Tue Mar 28 15:35:01 2023 +0200

    Add cases for lambda lifter

commit 5986e2108e
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 15:32:54 2023 +0200

    Added c output files to the gitignore

commit b35c19572f
Merge: b1d3e31 4a6c72f
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 28 15:26:35 2023 +0200

    Newer changes

commit b1d3e31efd
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 14:31:20 2023 +0200

    Fixed previously incorrect type equality check, commented code, add test

commit 85f31b129b
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 14:15:22 2023 +0200

    Yoinked over the garbage collector.

commit 2aff7a7743
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 13:50:19 2023 +0200

    Fixed argumentless constructors being treated as variables.

commit d7549d421c
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 13:49:34 2023 +0200

    Fixed a missing dependency.

commit 66e419efa6
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 11:53:25 2023 +0200

    Fixed the unnamed temporary bugs.

commit 58fe92affe
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 10:50:45 2023 +0200

    Revert "restructured layout of code a bit"

    This reverts commit 0639489d28.

commit 0639489d28
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 10:50:05 2023 +0200

    restructured layout of code a bit

commit 1558c98d10
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 10:46:04 2023 +0200

    improved the idea of error messages, still not very clean

commit 54f7d54bf9
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 10:10:26 2023 +0200

    fixed EAdd conversion bug in RemoveTEVars

commit 437c193ea8
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 28 10:07:30 2023 +0200

    fixed EAnn

commit 4d3d90c6a3
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 28 09:48:27 2023 +0200

    Added some debug options to the just file.

commit 0d2fe862e0
Author: sebastian <sebastian.selander@gmail.com>
Date:   Mon Mar 27 23:05:40 2023 +0200

    fixed bug and additional test

commit 4b24755b93
Author: sebastian <sebastian.selander@gmail.com>
Date:   Mon Mar 27 22:38:39 2023 +0200

    cleaned up implementations and added check for duplicate constructors

commit e1633ea147
Author: sebastian <sebastian.selander@gmail.com>
Date:   Mon Mar 27 21:16:48 2023 +0200

    small fixed and added qualifiedDo

commit a38e96a83b
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Mar 27 20:51:00 2023 +0200

    Fix Ident print instance

commit ad2bd645d9
Author: sebastian <sebastian.selander@gmail.com>
Date:   Mon Mar 27 20:33:11 2023 +0200

    tests are running now

commit 4a6c72fce0
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon Mar 27 20:11:49 2023 +0200

    Removed codegen to compile, type seem to work for newly added example

commit 0d23a59f0c
Merge: 2137414 bef7821
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon Mar 27 19:14:35 2023 +0200

    Merged into commit not compiling on codegen 😤

commit 506d8733d9
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:54:10 2023 +0200

    added old tests, still broken

commit 2adc3dceee
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:53:29 2023 +0200

    added old tests

commit d5ce73beae
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:52:22 2023 +0200

    hm is compatible

commit 6e54378327
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:48:23 2023 +0200

    Fixed errors in tc hm

commit 847ec37117
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 16:32:48 2023 +0200

    Fixed the dependency on the Grammar Ident.

commit 750503063a
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 16:31:47 2023 +0200

    Fixed the dependency on the Grammar Ident.

commit 72f4f26078
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 16:31:30 2023 +0200

    Fixed the dependency on the Grammar Ident.

commit db2f8cd197
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Mar 27 16:21:01 2023 +0200

    Fix Codegen

commit 22783cf817
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:14:40 2023 +0200

    Removed custom Character in favor of BNFC Char

commit b7be75aa1e
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Mar 27 16:14:14 2023 +0200

    Fix TypeCheckerIr

commit 623c6d1e58
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 16:11:33 2023 +0200

    Fixed language.cabal.

commit aab75a10f2
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 16:10:13 2023 +0200

    fixed justfile

commit 45527abd50
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Mon Mar 27 16:10:02 2023 +0200

    Fix module name

commit ac3f222753
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sat Feb 18 14:49:33 2023 +0100

    Add bidirectional type checker, lambda lifter.

commit 2fa30faa87
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 15:37:58 2023 +0200

    renamed stuff

commit aa4a615c28
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 27 14:44:21 2023 +0200

    fixed one bug

commit bd3cf3c3f1
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 13:40:18 2023 +0200

    Fixed simple pattern matching.

commit 582747a997
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 10:07:04 2023 +0200

    The created binary is now saved in the output folder.

commit 5062356cef
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Mar 27 10:05:39 2023 +0200

    Fixed broken padding on datatypes.

commit 91cfb21a35
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sun Mar 26 22:21:44 2023 +0200

    Almost got a lot of bugs fixed.

commit 9952eb0279
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sun Mar 26 21:10:20 2023 +0200

    Fixed the printing of TypeCheckerIr

commit c37db41431
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 18:52:25 2023 +0200

    fixed bug

commit ccfae19541
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sun Mar 26 18:38:07 2023 +0200

    Added .crf to every sample-program

commit 9ea3a3dc56
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sun Mar 26 18:37:55 2023 +0200

    Added another bug.

commit ebac869761
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sun Mar 26 18:24:12 2023 +0200

    Fixed a type error in teh codegen.

commit 4e92f86d60
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 16:57:34 2023 +0200

    added test for bug. experimented with solutions, none found

commit 2af7855a77
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 14:12:09 2023 +0200

    documented 3 bugs

commit 213741407b
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 00:41:26 2023 +0100

    small add to Justfile

commit 2974c10c0c
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 00:13:10 2023 +0100

    moved tests

commit d49e2401bf
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sun Mar 26 00:09:47 2023 +0100

    added file suffix and check

commit ac43af8110
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 22:40:15 2023 +0100

    fixed a substitution bug where `ap` was incorrectly inferred.
    also added cleaner fresh variables

commit 975dd34063
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 20:43:19 2023 +0100

    Better inference & stuff on pattern matches, added more tests for regression

commit 88eaa466e4
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 19:17:46 2023 +0100

    Nested pattern matching should work correctly, added more tests

commit 3082444347
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 18:42:11 2023 +0100

    fixed bugs potentially. tests are working atleast

commit 368413515b
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 12:04:00 2023 +0100

    found incorrectly accepted program. added test

commit 05333c5689
Author: sebastian <sebastian.selander@gmail.com>
Date:   Sat Mar 25 00:02:38 2023 +0100

    started on cleaner unit tests

commit accbd4eea6
Author: sebastian <sebastian.selander@gmail.com>
Date:   Fri Mar 24 22:03:43 2023 +0100

    dummy monomorphizer complete

commit 7e246a94e5
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 19:57:49 2023 +0100

    Fixed a segfault.

commit f531afb3ab
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 19:04:29 2023 +0100

    added comment when codegen ok

commit 2566c53f58
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 19:01:33 2023 +0100

    mono adapt

commit 3e31fe0ea5
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 18:52:12 2023 +0100

    The compiler now also runs the outputed program.

commit b08ae7aef1
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 18:48:40 2023 +0100

    rewrote unification for data type and variable.
    could definitely be wrong. have to double check

commit e500c70529
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 18:46:12 2023 +0100

    Programs are now actually compiled all the way through.

commit e0c78f5783
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 18:32:33 2023 +0100

    debug for parse tree

commit b4cae11c0d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 18:26:59 2023 +0100

    added debug info

commit 23c174607b
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 18:22:37 2023 +0100

    temp merge

commit 56ccd793ac
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 18:21:07 2023 +0100

    more error messages and better unification

commit 867485be12
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 17:40:57 2023 +0100

    removed trace

commit 41fc863658
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 17:39:10 2023 +0100

    added PEnum

commit d6d0fb7146
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 17:29:00 2023 +0100

    Enabled compiling to llvm again.

commit b1209b3353
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 17:13:56 2023 +0100

    Updated the monomorphizer to the new tree.

commit 3c2cb1a713
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 17:06:32 2023 +0100

    new good version works

commit f404acdbad
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 17:00:31 2023 +0100

    Updated some more changes.

commit 481667f2d8
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 16:10:46 2023 +0100

    added tc as well

commit 38680a4dcb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 16:10:25 2023 +0100

    adapted new tree to fuck with samuel

commit 50bea83a18
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 13:55:06 2023 +0100

    Got some more stuff working.

commit f4163bbb7d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 14:56:33 2023 +0100

    formatting

commit ce3971cf75
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 12:21:54 2023 +0100

    renamed stuff

commit 3f618e77f9
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 11:55:05 2023 +0100

    Got most of the codegenerator working.

commit 32f8a3e8a9
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 11:27:19 2023 +0100

    duplicate signatures disallowed

commit aa73f147f0
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 11:21:46 2023 +0100

    Remade lets with bind & improvements

commit 3371c3a146
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 24 11:21:25 2023 +0100

    Remade lets with bind & improvements

commit 30a79f34af
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Mar 24 10:57:21 2023 +0100

    Added some missing functionality to the dummy monomorphizer.

commit bef7821756
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 24 00:55:05 2023 +0100

    ReaderT rewrite, recursive and cyclic calls should work

commit fc60112877
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu Mar 23 22:07:55 2023 +0100

    Made binds keep args instead of lambda converting

commit 0012efabb7
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 22:01:40 2023 +0100

    Fixed some more stuff.

commit 75fa232e21
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 21:35:52 2023 +0100

    No more warnings, but everything to do with datatypes is outcommented.

commit 6cbc83c5d9
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 20:22:36 2023 +0100

    Fixed a miss.

commit c85010a8a1
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 20:20:17 2023 +0100

    Fixed ExpT

commit c6e8305215
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 18:15:25 2023 +0100

    created dummy monomorphizer

commit c19f821892
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 17:54:41 2023 +0100

    Switched around EId.

commit e283e83486
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 17:49:37 2023 +0100

    Fixed some reexports.

commit e3df4192bb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 17:20:19 2023 +0100

    created dummy monomorphizer

commit 42c8ebc7b6
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 16:49:49 2023 +0100

    Making progress towards finished product

commit d3d173eb59
Merge: bf0064d 519ed8a
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 16:33:05 2023 +0100

    Merge remote-tracking branch 'origin/typechecking-merge' into pattern-matching-with-typechecking

commit bf0064db86
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 16:13:59 2023 +0100

    Added the trait ToIr.

commit 519ed8af6c
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 16:06:09 2023 +0100

    Added monadic fail to renamer

commit 129a70e051
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Thu Mar 23 15:29:25 2023 +0100

    WIP Added support for more types of cases.

commit 7fa677e3d3
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 14:18:23 2023 +0100

    typechecker working, still unsure of quality

commit 8d1330ad42
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 23 11:13:48 2023 +0100

    typechecker is compatible with one extra addition to the spec

commit 3335ab7a57
Author: sebastian <sebastian.selander@gmail.com>
Date:   Wed Mar 22 21:26:14 2023 +0100

    compatible, EId rule for parsing is not working, testing not done yet

commit 914855e20f
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 22 17:52:39 2023 +0100

    working on adapting the typechecker

commit 936cb1301f
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 22 12:45:51 2023 +0100

    new grammar and adapted renamer

commit cd85297b85
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 22 11:48:40 2023 +0100

    Removed the ear operator.

commit 61c844a255
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 22 11:46:07 2023 +0100

    Revamped getNewVar

commit feeef18cfd
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 22 11:41:02 2023 +0100

    Started implementing pattern matching on data types.

commit 88a4a934b8
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 22 10:32:22 2023 +0100

    added more manual tests

commit d36370329e
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 22 10:24:00 2023 +0100

    Realized that getelementptr might be doing to right thing, and that the uninitialized data comes from padding.

commit 24007313cb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Mar 22 10:10:11 2023 +0100

    added shadowing for ECase in Renamer

commit 33b69a1895
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 21 22:07:21 2023 +0100

    Improved formatting

commit 57fe8cd0a6
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 21 22:02:28 2023 +0100

     Fixed larger bug

     where pattern matching on `Just a` with type `Maybe b` could be used for
     any type.

commit 8f151b7531
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 21 17:15:15 2023 +0100

    Monomorphization of function applications should work

commit 509de4415e
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Mar 21 17:09:03 2023 +0100

    progress on fixing bugs

commit 71d07ebf0f
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 21 15:59:47 2023 +0100

    Fixed some internal errors

commit 3026a96eb7
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 21 14:51:06 2023 +0100

    added todo for class

commit 4c015a4aac
Author: sebastian <sebastian.selander@gmail.com>
Date:   Tue Mar 21 14:33:18 2023 +0100

    initial pattern matching implementation. should be somewhat correct

commit ae34c494f5
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 21 10:14:00 2023 +0100

    Improved the visibility checkup a little bit.

commit 91816abfe6
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 21 10:11:02 2023 +0100

    Constructors are now seen as global functions.

commit bbf7a47e74
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Tue Mar 21 09:39:05 2023 +0100

    Started updating the Code Generator to the new monomorphizer tree.

commit 9cd2cdb511
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 20 17:40:09 2023 +0100

    continued work on pattern matching v2

commit ec95e0d9ef
Author: Rakarake <williambodin2001@gmail.com>
Date:   Sun Mar 12 17:53:46 2023 +0100

    Monomorphizer cleanup

commit e2db863c3e
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 10 17:24:03 2023 +0100

    Fixed name clashes

commit 96c4a2bddf
Author: Rakarake <williambodin2001@gmail.com>
Date:   Fri Mar 10 17:20:23 2023 +0100

    Added test of multiple instanciations of same polymorphic function

commit c3ea343d00
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 10 16:54:29 2023 +0100

    unified top level type with expression type

commit 224a165715
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Mar 9 18:52:35 2023 +0100

    Unique names of new binds with different types

commit f10919ac20
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Mar 9 18:32:00 2023 +0100

    Better tests

commit 0e20670343
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 8 17:52:41 2023 +0100

    Added check for recursive calls

commit d377ded7e1
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 8 17:38:50 2023 +0100

    Deleted bad sample programs, added polymorphic call in polymorphic function test

commit 62724964d7
Author: sebastian <sebastian.selander@gmail.com>
Date:   Wed Mar 8 15:22:42 2023 +0100

    fixed Maybe ('a -> 'a) bug. Pattern matching still wonky, will have to redo

commit 350cd3b0e9
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 11:01:07 2023 +0100

    Started importing Sebastian's new typechecker.

commit d5dd7896d8
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 10:35:07 2023 +0100

    Moved modules into a proper folder structure.

commit ac0ac2dac7
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 10:27:39 2023 +0100

    Removed a few imports.

commit 2af00da482
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 10:25:53 2023 +0100

    Renamed the `compile` function to generate `code`

commit 832efbcdd8
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 10:24:52 2023 +0100

    Gave the code generator a proper module name.

commit bff75bb00b
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Wed Mar 8 10:22:21 2023 +0100

    Switched an Int to Integer.

commit 63f9689f38
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 7 18:49:21 2023 +0100

    Simple polymorphic and monomorphic functions properly morphed in test demo.

commit 887c3b8391
Author: Rakarake <williambodin2001@gmail.com>
Date:   Tue Mar 7 16:42:56 2023 +0100

    Working on bugs

commit fce54e7899
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 6 16:41:59 2023 +0100

    documented possible bad functions

commit eef6fa7668
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 6 16:25:03 2023 +0100

    added new test and found another bug

commit 6947614fba
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 6 13:04:07 2023 +0100

    Updated bug list & started working on more tests

commit f5b5f11903
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 6 11:38:25 2023 +0100

    fixed formatting

commit 9c2f52f8bb
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Mar 6 11:27:17 2023 +0100

    fixed bug where bound variable didn't exist in case

commit 8ca876a101
Author: Rakarake <williambodin2001@gmail.com>
Date:   Mon Mar 6 10:47:52 2023 +0100

    Most code written, no tests yet

commit 778fec3dc4
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sun Mar 5 14:34:39 2023 +0100

    Implemented potential fix for one of the bugs

commit fe63fa6215
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sun Mar 5 13:24:56 2023 +0100

    Improved error message and created document for known bugs.

commit fecb71bc07
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 3 18:17:51 2023 +0100

    Found a bug.

commit 03d7080396
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Mar 3 11:46:54 2023 +0100

    pattern matching works? have to test more

commit 7656b46e3f
Author: sebastian <sebastian.selander@gmail.com>
Date:   Thu Mar 2 22:07:38 2023 +0100

    a bit more work on pattern match + case expr

commit dbc77ec5f3
Author: Rakarake <williambodin2001@gmail.com>
Date:   Thu Mar 2 18:36:50 2023 +0100

    Progress

commit 2401b6437b
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Mar 2 16:05:43 2023 +0100

    continued work pattern matching

commit 514d79bd6c
Author: Rakarake <williambodin2001@gmail.com>
Date:   Wed Mar 1 13:50:01 2023 +0100

    Strucute in place, MonomorpherIr module created

commit 05313652f9
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 28 17:15:48 2023 +0100

    unit tests, started on pattern matching

commit d23d417ff3
Author: Sebastian Selander <70573736+sebastianselander@users.noreply.github.com>
Date:   Mon Feb 27 19:38:45 2023 +0100

    Update TypeChecker.hs

commit bbf6e159c7
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 27 17:22:42 2023 +0100

    Type inference/checking on ADTs mostly complete(?). Still have to test

commit 2f45f39435
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 27 11:12:05 2023 +0100

    Incorporated most of main, as well as started on quickcheck

commit 7cf6f30835
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Feb 24 18:37:31 2023 +0100

    Data type constructors now properly tag the data.

commit 262543931c
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Feb 24 16:05:49 2023 +0100

    Types for data types are now created.

commit 272fbe3504
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Feb 24 09:29:55 2023 +0100

    Removed some unused code.

commit 5d004f4286
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Fri Feb 24 09:00:29 2023 +0100

    Added calling conventions to functions.

commit 06e65de235
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Feb 23 11:54:35 2023 +0100

    started on a test suite

commit 5daa5573f2
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Feb 22 15:24:38 2023 +0100

    Added more comments to the code

commit 8065576c31
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 20 20:38:36 2023 +0100

    Let has a bug, otherwise probably(?) done

commit a98135827c
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 20 16:51:44 2023 +0100

    EAdd is bugged. Mostly complete though.

commit 4df3f705ed
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 16:44:27 2023 +0100

    LLVMIr code now has the fastcc flag to enable speeed 😎

commit afbc700db2
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 16:43:54 2023 +0100

    Fixed the type checker accidentally chucking cases in some cases.

commit cd0f9dd456
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 15:27:13 2023 +0100

    The output directory is now cleared when the program is ran.

commit a36de2bde1
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 14:52:11 2023 +0100

    Added support for the minus operator.

commit fe4533c7ae
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 14:39:56 2023 +0100

    Added an option to output some debug info.

commit 6749650223
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 14:39:43 2023 +0100

    Added support for pattern matching on ints. Might need a lookover.

commit 18e0a92fe0
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Mon Feb 20 14:39:00 2023 +0100

    Added grammar for case matching.

commit dfbdb6678e
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 20 12:09:31 2023 +0100

    Working on non-ugly version of algorithm W (Hindley-Milner)

commit 420fb107f0
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sun Feb 19 15:25:49 2023 +0100

    Commented code and fixed some bugs I think. Still not complete

    id : Int -> Int
    id x = x
    does not type check

commit db932048ba
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sun Feb 19 02:10:57 2023 +0100

    Tried fixing bug. Failed.

commit 8b5cd3cf9a
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Sat Feb 18 23:08:27 2023 +0100

    Remade the algorithm myself. Still some bugs.

commit a4c12ede79
Merge: 287f843 4ab6681
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sat Feb 18 15:03:11 2023 +0100

    Merge branch 'prep-tc-martin' of github.com:bachelor-group-66-systemf/language into prep-tc-martin

commit 287f84377c
Author: Samuel Hammersberg <samuel.hammersberg@gmail.com>
Date:   Sat Feb 18 14:36:46 2023 +0100

    Implemented case matching on ints in the code generator

commit f188cffb8d
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 17 18:42:50 2023 +0100

    Unification part works (probably). Have a hard time understanding it.

commit 764faa582b
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 17 12:01:57 2023 +0100

    Remove hls pragmas

commit f2e8a02255
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 17 12:01:22 2023 +0100

    Removed adhoc tests

commit a9f54dbca1
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 17 11:09:48 2023 +0100

    Simplified quite a bit. Made a unify function. Still bugs left

commit eafe0fea0b
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Feb 16 16:37:36 2023 +0100

    Rewrote using unification-fd. Heavily inspired (aka copied) from:
    https://byorgey.wordpress.com/2021/09/08/implementing-hindley-milner-with-the-unification-fd-library/

commit f1b77a7efa
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Feb 15 19:52:52 2023 +0100

    Refactored. Cleaner version, ala Martin version

commit b03df17e34
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Feb 15 18:10:28 2023 +0100

    Minor changes. Added a comment

commit 7619e36c60
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Wed Feb 15 17:40:18 2023 +0100

    Inference works better now. Still work to do. Should use proper library

commit ad3f6b7011
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 14 22:35:00 2023 +0100

    Attempt at fixing EApp, failed.

commit 5d247057f5
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 14 22:03:56 2023 +0100

    Minor rewrite of tc. Some bugs still left

commit 6218efac20
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 14 16:44:38 2023 +0100

    Renamer done.
    It renames bound variables to numbers, converts let to lambda, and
    removes all variables from binds

commit 53314551f5
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 14 12:56:07 2023 +0100

    A bit cleaner code. A renamer is the focus to make the tc simpler

commit 200a9e57ed
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Feb 14 10:12:38 2023 +0100

    Fixed EId, more work on other expressions needed

commit c10d7703ad
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 13 19:03:06 2023 +0100

    Progression on type checker ;)

commit 73dc2e4b6a
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Feb 13 12:17:49 2023 +0100

    Inference on most expressions. HM based.
    Still have to figure out how to infer type of lambda variables, as well
    as how function application on polymorphic should work

commit a1e9624d5e
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 10 12:09:08 2023 +0100

    TTGing the lambda lifter

commit f4f1786be3
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 10 10:41:16 2023 +0100

    Revert "Merge branch 'typechecking' into codegen-martin-3"

    This reverts commit e000e5159f, reversing
    changes made to 3ac8377fa0.

commit 771c73c0db
Merge: b6f03e9 e000e51
Author: Sebastian Selander <70573736+sebastianselander@users.noreply.github.com>
Date:   Fri Feb 10 10:33:50 2023 +0100

    Merge pull request #5 from bachelor-group-66-systemf/codegen-martin-3

    Codegen martin 3

commit e000e5159f
Merge: 3ac8377 b6f03e9
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 10 10:33:15 2023 +0100

    Merge branch 'typechecking' into codegen-martin-3

commit 3ac8377fa0
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 20:25:00 2023 +0100

    Fix auxiliary path

commit 59fb773bc1
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 20:24:25 2023 +0100

    Some clean up and documenting

commit 07bec3e7ef
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 20:24:06 2023 +0100

    Add auxiliary module

commit 7c313b3faa
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 20:23:49 2023 +0100

    Fix basic tests

commit 23261ec380
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 20:23:20 2023 +0100

    Add llvm dep

commit ce31e4d490
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 17:53:39 2023 +0100

    Fix first unnecessary supercombinator

commit b6f03e953b
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Thu Feb 9 09:42:44 2023 +0100

    deprecated branch

commit 7a2404cf74
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 06:19:58 2023 +0100

    Finish Lambda Lifter

commit 1f47288fcf
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 05:19:51 2023 +0100

    Implement lambda lifting passes: freeVars, abstract, and rename

commit b669381572
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Thu Feb 9 05:18:49 2023 +0100

    Remove files from git

commit 84eb430c41
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Fri Feb 3 11:29:42 2023 +0100

    relaxed base dependency and added overwrite

commit 6607173b93
Author: Patrik Jansson <patrik.ja@gmail.com>
Date:   Fri Feb 3 11:12:44 2023 +0100

    Typo fix (to check access).

commit be3fcfc9e3
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Tue Jan 24 16:39:22 2023 +0100

    Typeinference/checking on expressions done.

    Simplified the typechecker a bit, removed GADT solution for now.
    Still not fully working

commit b6b2dfa25f
Author: sebastianselander <sebastian.selander@gmail.com>
Date:   Mon Jan 23 17:17:06 2023 +0100

    Some work on a typechecker

commit 43e0f67fe2
Author: Martin Fredin <fredin.martin@gmail.com>
Date:   Sun Jan 22 20:16:03 2023 +0100

    Fix conflict
2023-05-05 15:20:55 +02:00

128 lines
3.8 KiB
Haskell

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE QualifiedDo #-}
{-# HLINT ignore "Use camelCase" #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
module TestAnnForall (testAnnForall, test) where
import AnnForall (annotateForall)
import Control.Monad ((<=<))
import Desugar.Desugar (desugar)
import DoStrings qualified as D
import Grammar.ErrM (Err, pattern Bad, pattern Ok)
import Grammar.Layout (resolveLayout)
import Grammar.Par (myLexer, pProgram)
import Grammar.Print (printTree)
import Renamer.Renamer (rename)
import ReportForall (reportForall)
import Test.Hspec (
describe,
hspec,
shouldBe,
shouldNotSatisfy,
shouldSatisfy,
shouldThrow,
specify,
)
import TypeChecker.ReportTEVar (reportTEVar)
import TypeChecker.TypeChecker (TypeChecker (Bi, Hm))
import TypeChecker.TypeCheckerBidir (typecheck)
import TypeChecker.TypeCheckerIr qualified as T
test = hspec testAnnForall
testAnnForall = describe "Test AnnForall" $ do
ann_data1
ann_data2
ann_bad_data1
ann_bad_data2
ann_bad_data3
ann_sig1
ann_sig2
ann_bind
ann_data1 =
specify "Annotate data type" $
D.do
"data Either a b where"
" Left : a -> Either a b"
" Right : b -> Either a b"
`shouldBePrg` D.do
"data forall a. forall b. Either a b where"
" Left : a -> Either a b"
" Right : b -> Either a b"
ann_data2 =
specify "Annotate constructor with additional type variable" $
D.do
"data forall a. forall b. Either a b where"
" Left : c -> a -> Either a b"
" Right : b -> Either a b"
`shouldBePrg` D.do
"data forall a. forall b. Either a b where"
" Left : forall c. c -> a -> Either a b"
" Right : b -> Either a b"
ann_bad_data1 =
specify "Bad data type variables" $
D.do
"data Either Int b where"
" Left : a -> Either a b"
" Right : b -> Either a b"
`shouldBeErr` "Misformed data declaration: Non type variable argument"
ann_bad_data2 =
specify "Bad data identifer" $
D.do
"data Int -> Either a b where"
" Left : a -> Either a b"
" Right : b -> Either a b"
`shouldBeErr` "Misformed data declaration"
ann_bad_data3 =
specify "Constructor forall duplicate" $
D.do
"data Int -> Either a b where"
" Left : forall a. a -> Either a b"
" Right : b -> Either a b"
`shouldBeErr` "Misformed data declaration"
ann_sig1 =
specify "Annotate signature" $
"f : a -> b -> (forall a. a -> a) -> a"
`shouldBePrg` "f : forall a. forall b. a -> b -> (forall a. a -> a) -> a"
ann_sig2 =
specify "Annotate signature 2" $
D.do
"const : forall a. forall b. a -> b -> a"
"const x y = x"
"main = const 'a' 65"
`shouldBePrg` D.do
"const : forall a. forall b. a -> b -> a"
"const x y = x"
"main = const 'a' 65"
ann_bind =
specify "Annotate bind" $
"f = (\\x.\\y. x : a -> b -> a) 4"
`shouldBePrg` "f = (\\x.\\y. x : forall a. forall b. a -> b -> a) 4"
shouldBeErr s err = run s `shouldBe` Bad err
shouldBePrg s1 s2
| Ok p2 <- run' s2 = run s1 `shouldBe` Ok p2
| otherwise = error ("Faulty expectation \n" ++ show (run' s2))
run = annotateForall <=< run'
run' s = do
p <- run'' s
reportForall Bi p
pure p
run'' = fmap desugar . pProgram . resolveLayout True . myLexer
runPrint = (putStrLn . either show printTree . run) $
D.do
"data forall a. forall b. Either a b where"
" Left : c -> a -> Either a b"
" Right : b -> Either a b"