]> Git — Sourcephile - haskell/symantic.git/log
haskell/symantic.git
6 years agoMassive rewrite to better support rank-1 polymorphic types.
Julien Moutinho [Sun, 11 Jun 2017 19:05:51 +0000 (21:05 +0200)]
Massive rewrite to better support rank-1 polymorphic types.

6 years agoTry the new Type and Term design against the actual needs.
Julien Moutinho [Thu, 11 May 2017 14:34:29 +0000 (16:34 +0200)]
Try the new Type and Term design against the actual needs.

6 years agoImprove Show of Type.
Julien Moutinho [Mon, 1 May 2017 23:02:35 +0000 (01:02 +0200)]
Improve Show of Type.

6 years agoArchive old attempt to remove proto tokens without polymorphic types.
Julien Moutinho [Sun, 30 Apr 2017 21:53:57 +0000 (23:53 +0200)]
Archive old attempt to remove proto tokens without polymorphic types.

6 years agoCleanup dead-end attempts.
Julien Moutinho [Sun, 30 Apr 2017 21:32:35 +0000 (23:32 +0200)]
Cleanup dead-end attempts.

6 years agoComplexify the type system to support rank-1 polymorphic types and terms.
Julien Moutinho [Sun, 30 Apr 2017 20:51:07 +0000 (22:51 +0200)]
Complexify the type system to support rank-1 polymorphic types and terms.

With polymorphic types now expressible,
the proto token workaround should be removable,
since every token should now be able to directly have a Type/Term,
thus no longer needing to be applied to a few others before having it.

As a consequence of merging Type and Term,
the symantic machinery will have to be moved to TeSym,
and thus also carried by Type. WIP.

7 years agoTry to implement polymorphic types.
Julien Moutinho [Sat, 22 Apr 2017 01:28:48 +0000 (03:28 +0200)]
Try to implement polymorphic types.

7 years agoFix prefix/postfix operators wrt. term application.
Julien Moutinho [Wed, 19 Apr 2017 10:08:37 +0000 (12:08 +0200)]
Fix prefix/postfix operators wrt. term application.

7 years agoAdd compileWithTyCtx.
Julien Moutinho [Sat, 8 Apr 2017 17:37:33 +0000 (19:37 +0200)]
Add compileWithTyCtx.

7 years agoAdd support for (>=>).
Julien Moutinho [Sat, 1 Apr 2017 22:34:49 +0000 (00:34 +0200)]
Add support for (>=>).

7 years agoAdd GNUmakefile rule : tag.
Julien Moutinho [Sat, 1 Apr 2017 15:19:47 +0000 (17:19 +0200)]
Add GNUmakefile rule : tag.

7 years agoFix Mono{Foldable,Functor} and {Semi,Is}Sequence constraints.
Julien Moutinho [Sat, 1 Apr 2017 14:49:13 +0000 (16:49 +0200)]
Fix Mono{Foldable,Functor} and {Semi,Is}Sequence constraints.

Cleaner to support the constraints
in the various data types' Proj_TyConC
instead of the constraints'.
For instance, this avoids to require the IO TyConst
when using MonoFunctor.

7 years agoAdd withContext.
Julien Moutinho [Fri, 31 Mar 2017 13:00:40 +0000 (15:00 +0200)]
Add withContext.

7 years agoFix stack clean.
Julien Moutinho [Fri, 24 Mar 2017 00:31:44 +0000 (01:31 +0100)]
Fix stack clean.

7 years agoRename grammar rules, prefixing them with g_.
Julien Moutinho [Fri, 24 Mar 2017 00:15:22 +0000 (01:15 +0100)]
Rename grammar rules, prefixing them with g_.

7 years agoRename Term_Name -> TeName
Julien Moutinho [Thu, 23 Mar 2017 23:36:34 +0000 (00:36 +0100)]
Rename Term_Name -> TeName

7 years agoAdd IsString instances.
Julien Moutinho [Thu, 23 Mar 2017 23:30:31 +0000 (00:30 +0100)]
Add IsString instances.

7 years agoFix time&space explosion of GHC's typechecker.
Julien Moutinho [Tue, 14 Mar 2017 14:48:21 +0000 (15:48 +0100)]
Fix time&space explosion of GHC's typechecker.

7 years agoAdd Lib.{Bounded,Enum,Ratio,Rational,Real,Semigroup}.
Julien Moutinho [Mon, 13 Mar 2017 09:14:51 +0000 (10:14 +0100)]
Add Lib.{Bounded,Enum,Ratio,Rational,Real,Semigroup}.

7 years agoFix comment typo.
Julien Moutinho [Sat, 11 Mar 2017 02:59:27 +0000 (03:59 +0100)]
Fix comment typo.

7 years agoFix lexeme to progress over indented lines.
Julien Moutinho [Fri, 10 Mar 2017 00:27:57 +0000 (01:27 +0100)]
Fix lexeme to progress over indented lines.

7 years agoRenaming Constants -> TyConsts.
Julien Moutinho [Fri, 10 Mar 2017 00:25:50 +0000 (01:25 +0100)]
Renaming Constants -> TyConsts.

7 years agoCosmetic cleanup of GHC flags.
Julien Moutinho [Fri, 10 Mar 2017 00:20:04 +0000 (01:20 +0100)]
Cosmetic cleanup of GHC flags.

7 years agoAdd GNUmakefile.
Julien Moutinho [Wed, 8 Mar 2017 06:21:32 +0000 (07:21 +0100)]
Add GNUmakefile.

7 years agoCosmetic cleanup.
Julien Moutinho [Wed, 8 Mar 2017 06:15:53 +0000 (07:15 +0100)]
Cosmetic cleanup.

7 years agoFix Inj_ConstP -> Inj_TyConstP.
Julien Moutinho [Wed, 8 Mar 2017 04:23:17 +0000 (05:23 +0100)]
Fix Inj_ConstP -> Inj_TyConstP.

7 years agoUse AllowAmbiguousTypes to avoid using Proxy.
Julien Moutinho [Tue, 7 Mar 2017 02:57:26 +0000 (03:57 +0100)]
Use AllowAmbiguousTypes to avoid using Proxy.

7 years agoCosmetic cleanup.
Julien Moutinho [Mon, 6 Mar 2017 22:32:24 +0000 (23:32 +0100)]
Cosmetic cleanup.

7 years agoFix empty and eoi.
Julien Moutinho [Mon, 6 Mar 2017 22:31:37 +0000 (23:31 +0100)]
Fix empty and eoi.

7 years agoBacktrack (try) the grammar only when necessary to get better error messages.
Julien Moutinho [Mon, 6 Mar 2017 22:30:09 +0000 (23:30 +0100)]
Backtrack (try) the grammar only when necessary to get better error messages.

7 years agoGather type declarations and infix declarations.
Julien Moutinho [Sun, 5 Mar 2017 19:12:39 +0000 (20:12 +0100)]
Gather type declarations and infix declarations.

7 years agoReduce compile time of tests with -O0 -fmax-simplifier-iterations=0.
Julien Moutinho [Sun, 5 Mar 2017 02:29:20 +0000 (03:29 +0100)]
Reduce compile time of tests with -O0 -fmax-simplifier-iterations=0.

7 years agoSplit into symantic{,-grammar,-lib}.
Julien Moutinho [Fri, 10 Feb 2017 10:39:14 +0000 (11:39 +0100)]
Split into symantic{,-grammar,-lib}.

7 years agoBump version.
Julien Moutinho [Wed, 8 Feb 2017 19:18:08 +0000 (20:18 +0100)]
Bump version.

7 years agoRenames.
Julien Moutinho [Wed, 8 Feb 2017 19:01:57 +0000 (20:01 +0100)]
Renames.

7 years agoPolish doc.
Julien Moutinho [Wed, 8 Feb 2017 16:05:07 +0000 (17:05 +0100)]
Polish doc.

7 years agoAdd optional.
Julien Moutinho [Wed, 8 Feb 2017 16:04:33 +0000 (17:04 +0100)]
Add optional.

7 years agoAdd stack.yaml.
Julien Moutinho [Mon, 6 Feb 2017 15:16:31 +0000 (16:16 +0100)]
Add stack.yaml.

7 years agoUpdate doc.
Julien Moutinho [Mon, 6 Feb 2017 11:30:50 +0000 (12:30 +0100)]
Update doc.

7 years agoFix Lib.Ord : Ordering.
Julien Moutinho [Sat, 4 Feb 2017 07:10:18 +0000 (08:10 +0100)]
Fix Lib.Ord : Ordering.

7 years agoFix module including.
Julien Moutinho [Sat, 4 Feb 2017 05:29:48 +0000 (06:29 +0100)]
Fix module including.

7 years agoUse more TypeApplications.
Julien Moutinho [Fri, 3 Feb 2017 06:25:40 +0000 (07:25 +0100)]
Use more TypeApplications.

7 years agoRemove Alternative uses in grammars.
Julien Moutinho [Fri, 3 Feb 2017 06:18:28 +0000 (07:18 +0100)]
Remove Alternative uses in grammars.

7 years agoFix Lib.Text.
Julien Moutinho [Fri, 3 Feb 2017 03:34:56 +0000 (04:34 +0100)]
Fix Lib.Text.

7 years agoMove libraries in Lib.
Julien Moutinho [Thu, 2 Feb 2017 03:14:08 +0000 (04:14 +0100)]
Move libraries in Lib.

7 years agoAdd Gram_Term.
Julien Moutinho [Mon, 23 Jan 2017 13:31:20 +0000 (14:31 +0100)]
Add Gram_Term.

7 years agoAdd Parsing.Grammar.
Julien Moutinho [Wed, 11 Jan 2017 01:18:47 +0000 (02:18 +0100)]
Add Parsing.Grammar.

7 years agoFix comment typo.
Julien Moutinho [Fri, 6 Jan 2017 18:48:29 +0000 (19:48 +0100)]
Fix comment typo.

7 years agoAdd Compiling.Alternative.
Julien Moutinho [Thu, 5 Jan 2017 19:49:19 +0000 (20:49 +0100)]
Add Compiling.Alternative.

7 years agoRenaming textI_app* to textI*.
Julien Moutinho [Thu, 5 Jan 2017 19:48:43 +0000 (20:48 +0100)]
Renaming textI_app* to textI*.

7 years agoClarify names, and add commentaries (bis).
Julien Moutinho [Thu, 5 Jan 2017 05:13:22 +0000 (06:13 +0100)]
Clarify names, and add commentaries (bis).

7 years agoClarify names, and add commentaries.
Julien Moutinho [Wed, 4 Jan 2017 02:58:31 +0000 (03:58 +0100)]
Clarify names, and add commentaries.

7 years agoAdd Compiling.Show.
Julien Moutinho [Tue, 3 Jan 2017 20:39:52 +0000 (21:39 +0100)]
Add Compiling.Show.

7 years agoAdd Parsing.Token.
Julien Moutinho [Fri, 30 Dec 2016 21:29:12 +0000 (22:29 +0100)]
Add Parsing.Token.

7 years agoAdd Compiling.Sequences.
Julien Moutinho [Sat, 10 Dec 2016 19:32:29 +0000 (20:32 +0100)]
Add Compiling.Sequences.

7 years agoAdd Compiling.NonNull.
Julien Moutinho [Sat, 10 Dec 2016 04:37:29 +0000 (05:37 +0100)]
Add Compiling.NonNull.

7 years agoAdd Compiling.MonoFoldable.
Julien Moutinho [Sat, 10 Dec 2016 02:51:00 +0000 (03:51 +0100)]
Add Compiling.MonoFoldable.

7 years agoAdd Typing.Family and Compiling.MonoFunctor.
Julien Moutinho [Fri, 9 Dec 2016 04:28:04 +0000 (05:28 +0100)]
Add Typing.Family and Compiling.MonoFunctor.

7 years agoAdd tests for Compiling.
Julien Moutinho [Thu, 8 Dec 2016 01:50:22 +0000 (02:50 +0100)]
Add tests for Compiling.

7 years agoFix lambda application.
Julien Moutinho [Wed, 7 Dec 2016 21:22:08 +0000 (22:22 +0100)]
Fix lambda application.

7 years agoUse GHC-8.0.1's TypeInType to handle kinds better, and migrate Compiling.
Julien Moutinho [Wed, 7 Dec 2016 03:26:22 +0000 (04:26 +0100)]
Use GHC-8.0.1's TypeInType to handle kinds better, and migrate Compiling.

7 years agoAdd Compiling, Interpreting and Transforming.
Julien Moutinho [Sun, 4 Dec 2016 00:59:07 +0000 (01:59 +0100)]
Add Compiling, Interpreting and Transforming.

7 years agoSimplify the Constraint projection
Julien Moutinho [Thu, 24 Nov 2016 19:04:08 +0000 (20:04 +0100)]
Simplify the Constraint projection

7 years agoRevamp the type system.
Julien Moutinho [Thu, 24 Nov 2016 04:47:58 +0000 (05:47 +0100)]
Revamp the type system.

This is definitively much more correct, simple and powerful this way:
kinds are now properly handled,
type constraints capture is now quite neat,
and usable type variables should be possible.

Though the current code may seem obvious and natural
for the task at hand, it required
first to know that this was indeed this task that has to be done…

Indeed I was previously much more focused on the symantics part,
but this happened when I decided to put a day or two
to check if type inferencing would indeed be possible with the previous type system,
I rapidly convinced myself that I couldn't handle type variables as required,
so I then put aside the previous type system to work anew
from the main (mono)type of Top,
which also appears in Write You a Haskell:

data Type
 =   TVar TVar
 |   TCon String
 |   TArr Type Type

As in the previous type system,
I first tried to have Type indexing an Haskell type (h)
by using the usual GADTs way,
which was surprisingly possible for every kind:
once I realized this could be done through Proxy
(this definitively is a very important type
to compute with GHC's type system),
and found that the type application could be handled
with a type family, which could effectively let me build types
from an AST, the type family's result just stays abstract,
and GADTs put constraints in scope with it in them.

The Index GADT of GLambda was my inspiration to handle type constants
through a type list of them, and thus drop the previous approach
which was indexing types (and not type constants)
and required much more code.

I then tried to have Type always well-formed through GADTs,
my first attempt was (stupidly) to only check the arity,
then I realized it was not enough and introduced a Kind type.

At this point I was able to kindcheck an AST of a type,
but failed to replicate the previous approach to capture a Constraint,
hopefully I then tried (without much hope it would work)
to do the "obvious thing" (since this is what GHC does),
that is to add a type constraint kind into Kind,
which proved itself quite rewarding.
Surprisingly I've quickly found that introducing UnProxy
enables to capture Constraints which need to work on abstract types,
like (Eq a) to prove (Eq (Maybe a)).

Work ahead is to try to update the previous approach
to build expressions with symantics.
Then later to try again type inferencing.

Cheers :-)

7 years agofactorizing Type1_From ast Type0
Julien Moutinho [Sat, 19 Nov 2016 13:39:02 +0000 (14:39 +0100)]
factorizing Type1_From ast Type0

7 years agopolish code
Julien Moutinho [Fri, 18 Nov 2016 22:27:00 +0000 (23:27 +0100)]
polish code

7 years agofix Num requiring Integer
Julien Moutinho [Fri, 18 Nov 2016 22:10:03 +0000 (23:10 +0100)]
fix Num requiring Integer

7 years agoType1_From instances
Julien Moutinho [Fri, 18 Nov 2016 21:46:44 +0000 (22:46 +0100)]
Type1_From instances

7 years agopolish code, Foldable
Julien Moutinho [Fri, 18 Nov 2016 21:16:36 +0000 (22:16 +0100)]
polish code, Foldable

7 years agoRepr_Dup helpers
Julien Moutinho [Thu, 17 Nov 2016 01:32:14 +0000 (02:32 +0100)]
Repr_Dup helpers

7 years agoFoldable, Num
Julien Moutinho [Wed, 16 Nov 2016 11:38:26 +0000 (12:38 +0100)]
Foldable, Num

7 years agoexplore parsing of partially applied functions
Julien Moutinho [Wed, 16 Nov 2016 06:05:05 +0000 (07:05 +0100)]
explore parsing of partially applied functions

7 years agopolish names
Julien Moutinho [Mon, 14 Nov 2016 22:17:12 +0000 (23:17 +0100)]
polish names

7 years agoEq, Ord
Julien Moutinho [Mon, 14 Nov 2016 19:56:05 +0000 (20:56 +0100)]
Eq, Ord

7 years agopolish names
Julien Moutinho [Mon, 14 Nov 2016 06:44:46 +0000 (07:44 +0100)]
polish names

7 years agoMonoFunctor
Julien Moutinho [Sun, 13 Nov 2016 20:33:25 +0000 (21:33 +0100)]
MonoFunctor

7 years agorevamp Repr/*
Julien Moutinho [Sat, 12 Nov 2016 15:03:10 +0000 (16:03 +0100)]
revamp Repr/*

7 years agoInteger, Integral, Num
Julien Moutinho [Sat, 12 Nov 2016 13:05:10 +0000 (14:05 +0100)]
Integer, Integral, Num

7 years agoMap
Julien Moutinho [Fri, 11 Nov 2016 22:19:32 +0000 (23:19 +0100)]
Map

7 years agofix (->) by removing inline/val/lazy
Julien Moutinho [Mon, 7 Nov 2016 02:47:54 +0000 (03:47 +0100)]
fix (->) by removing inline/val/lazy

7 years agoIO, Monoid, Foldable, Text
Julien Moutinho [Wed, 2 Nov 2016 21:08:23 +0000 (22:08 +0100)]
IO, Monoid, Foldable, Text

7 years agoMonad
Julien Moutinho [Mon, 31 Oct 2016 19:54:26 +0000 (20:54 +0100)]
Monad

7 years agoremove old files
Julien Moutinho [Sun, 30 Oct 2016 22:19:06 +0000 (23:19 +0100)]
remove old files

7 years agoinit
Julien Moutinho [Sun, 30 Oct 2016 10:45:31 +0000 (11:45 +0100)]
init

7 years agoinit
Julien Moutinho [Thu, 27 Oct 2016 20:54:52 +0000 (22:54 +0200)]
init

7 years agoinit
Julien Moutinho [Thu, 27 Oct 2016 20:49:01 +0000 (22:49 +0200)]
init

7 years agoinit
Julien Moutinho [Thu, 27 Oct 2016 20:34:25 +0000 (22:34 +0200)]
init

7 years agoinit
Julien Moutinho [Wed, 26 Oct 2016 16:17:54 +0000 (18:17 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 25 Oct 2016 22:49:02 +0000 (00:49 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 25 Oct 2016 18:40:55 +0000 (20:40 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 25 Oct 2016 13:06:27 +0000 (15:06 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 25 Oct 2016 11:45:44 +0000 (13:45 +0200)]
init

7 years agoinit
Julien Moutinho [Sun, 23 Oct 2016 14:36:22 +0000 (16:36 +0200)]
init

7 years agoinit
Julien Moutinho [Sun, 23 Oct 2016 10:33:55 +0000 (12:33 +0200)]
init

7 years agoinit
Julien Moutinho [Sun, 23 Oct 2016 09:22:46 +0000 (11:22 +0200)]
init

7 years agoinit
Julien Moutinho [Sun, 23 Oct 2016 07:01:47 +0000 (09:01 +0200)]
init

7 years agoinit
Julien Moutinho [Thu, 20 Oct 2016 12:18:16 +0000 (14:18 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 18 Oct 2016 16:15:59 +0000 (18:15 +0200)]
init

7 years agoinit
Julien Moutinho [Tue, 18 Oct 2016 12:16:59 +0000 (14:16 +0200)]
init

7 years agoinit
Julien Moutinho [Sun, 16 Oct 2016 15:06:56 +0000 (17:06 +0200)]
init