Programatica Tools

Directory tools/base/TI

The README file is displayed below the directory index.
NameLast modifiedSize
Parent Directory  -
TiMonad.hs2002-09-29 23:44 169
TiConstraints.hs2003-03-19 09:42 214
TiKEnv.hs2003-02-13 07:34 246
TiBaseStruct.hs2002-05-15 22:22 346
TI.hs2005-05-19 07:33 367
TiNameMaps.hs2003-01-06 23:50 430
TiFreeNames.hs2002-12-10 20:57 605
TiEnv.hs2006-03-31 03:35 645
TiRhs.hs2005-05-19 06:59 688
TiSCC.hs2003-05-05 23:35 740
TiFresh.hs2002-12-10 20:57 850
TiLit.hs2004-12-18 06:24 853
Flags.ghc2004-12-18 06:24 900
TiError.hs2005-04-29 02:32 948
TiHsName.hs2003-11-14 20:56 1.0K
TiT.hs2004-12-06 23:36 1.0K
TiTEnv.hs2005-03-04 00:43 1.1K
TiFields.hs2004-12-16 01:36 1.1K
TiEnvFM.hs2009-01-04 11:18 1.2K
TiKinds.hs2005-05-11 22:52 1.5K
TiP.hs2005-06-01 21:58 1.6K
TiBySuper.hs2005-04-15 01:29 1.6K
TiDefinedNames.hs2005-07-21 00:02 1.7K
TiPrelude.hs2005-05-19 07:33 1.8K
TiPretty.hs2003-02-04 01:38 2.2K
Unification.hs2004-12-06 23:36 2.5K
TiDefault.hs2005-05-19 07:33 2.7K
TiModule.hs2005-04-29 02:32 2.7K
TiDinst.hs2004-12-16 01:36 2.7K
TiNames.hs2005-03-04 00:43 2.7K
TiPNT.hs2005-07-21 00:02 3.0K
TiBase.hs2005-07-21 00:02 3.1K
TiSolve.hs2005-07-21 00:02 3.2K
TiClassInst.hs2004-12-18 06:24 3.2K
NewTiMonad.hs2003-02-07 01:14 3.3K
TiDerivedInstances.hs2005-05-19 07:33 3.5K
TiInstanceDB.hs2009-01-04 11:18 3.6K
NameMapsDecorate.hs2005-05-12 22:58 3.6K
TiDkc.hs2005-07-21 00:02 3.8K
TiUtil.hs2005-05-19 07:33 4.3K
TiClasses.hs2005-07-21 00:02 4.4K
TiTypes.hs2005-07-21 00:02 4.9K
TiGeneralize.hs2005-06-01 21:58 4.9K
OrigTiMonad.hs2006-06-09 22:39 5.1K
TiFunDeps.hs2005-07-21 00:02 5.5K
TiE.hs2004-12-18 06:24 5.9K
TiContextReduction.hs2005-07-21 00:02 6.1K
TiD.hs2005-07-21 00:02 6.6K
TiClassInst2.hs2005-02-02 00:38 7.7K
TiDs.hs2005-07-21 00:02 8.9K
TiDecorate.hs2006-08-12 01:30 13K

Extensible Haskell front-end for the Programatica project

What is in this directory (base/TI)

This directory contains a type checker for the base language (i.e., more or less Haskell 98). It is structured to allow large parts to be reusable in extended versions of the language.

At present, the type inference monad is fixed, and the AST for inferred types is fixed, but it might be possible to factor out these aspects too.

Although various details differ, this type checker is influenced by

Modules for the basic type inference machinery

Instances and context reduction

Type inference for the base language structure

These should be reusable in extended versions of the language.

Knot-tying definitions for the base language

Type inference for sequences of declarations

Interfaces to other pieces of reusable code

Other modules