packages feed

ddc-core-0.4.2.1: ddc-core.cabal

Name:           ddc-core
Version:        0.4.2.1
License:        MIT
License-file:   LICENSE
Author:         The Disciplined Disciple Compiler Strike Force
Maintainer:     Ben Lippmeier <benl@ouroborus.net>
Build-Type:     Simple
Cabal-Version:  >=1.6
Stability:      experimental
Category:       Compilers/Interpreters
Homepage:       http://disciple.ouroborus.net
Synopsis:       Disciplined Disciple Compiler core language and type checker.
Description:    
        Disciple Core is an explicitly typed language based on System-F2,
        intended as an intermediate representation for a compiler. In addition
        to the polymorphism of System-F2 it supports region, effect and closure
        typing. Evaluation order is left-to-right call-by-value by default.
        There is a capability system to track whether objects are mutable or
        constant, and to ensure that computations that perform visible side
        effects are not reordered inappropriately.

        See the @ddc-tools@ package for a user-facing interpreter and compiler.

Library
  Build-Depends: 
        base            >= 4.6 && < 4.9,
        array           >= 0.4 && < 0.6,
        deepseq         >= 1.3 && < 1.5,
        containers      == 0.5.*,
        directory       == 1.2.*,
        text            >= 1.0 && < 1.3,
        transformers    == 0.4.*,
        mtl             == 2.2.1.*,
        ddc-base        == 0.4.2.*

  Exposed-modules:
        DDC.Core.Collect.Support

        DDC.Core.Exp.Annot.AnT
        DDC.Core.Exp.Annot.AnTEC
        DDC.Core.Exp.Annot.Compounds
        DDC.Core.Exp.Annot.Context
        DDC.Core.Exp.Annot.Ctx
        DDC.Core.Exp.Annot.Exp
        DDC.Core.Exp.Annot.Predicates

        DDC.Core.Exp.Generic.BindStruct
        DDC.Core.Exp.Generic.Compounds
        DDC.Core.Exp.Generic.Exp
        DDC.Core.Exp.Generic.Predicates
        DDC.Core.Exp.Generic.Pretty

        DDC.Core.Exp.Simple.Compounds
        DDC.Core.Exp.Simple.Exp
        DDC.Core.Exp.Annot
        DDC.Core.Exp

        DDC.Core.Lexer.Names
        DDC.Core.Lexer.Tokens
        DDC.Core.Lexer.Unicode
        
        DDC.Core.Transform.Annotate
        DDC.Core.Transform.BoundT
        DDC.Core.Transform.BoundX
        DDC.Core.Transform.Deannotate
        DDC.Core.Transform.MapT
        DDC.Core.Transform.Reannotate
        DDC.Core.Transform.Rename
        DDC.Core.Transform.SpreadX
        DDC.Core.Transform.SubstituteTX
        DDC.Core.Transform.SubstituteWX
        DDC.Core.Transform.SubstituteXX

        DDC.Core.Call
        DDC.Core.Check
        DDC.Core.Collect

        DDC.Core.Fragment
        DDC.Core.Lexer
        DDC.Core.Load
        DDC.Core.Module
        DDC.Core.Parser
        DDC.Core.Pretty

        DDC.Type.Transform.BoundT
        DDC.Type.Transform.Instantiate
        DDC.Type.Transform.Rename
        DDC.Type.Transform.SpreadT
        DDC.Type.Transform.SubstituteT
        
        DDC.Type.Bind
        DDC.Type.Check
        DDC.Type.Collect
        DDC.Type.Compounds
        DDC.Type.DataDef
        DDC.Type.Env
        DDC.Type.Equiv
        DDC.Type.Exp
        DDC.Type.Predicates
        DDC.Type.Subsumes
        DDC.Type.Sum
        DDC.Type.Universe

  Other-modules:
        DDC.Core.Check.Judge.Type.AppT
        DDC.Core.Check.Judge.Type.AppX
        DDC.Core.Check.Judge.Type.Base
        DDC.Core.Check.Judge.Type.Case
        DDC.Core.Check.Judge.Type.Cast
        DDC.Core.Check.Judge.Type.DaCon
        DDC.Core.Check.Judge.Type.LamT
        DDC.Core.Check.Judge.Type.LamX
        DDC.Core.Check.Judge.Type.Let
        DDC.Core.Check.Judge.Type.LetPrivate
        DDC.Core.Check.Judge.Type.Sub
        DDC.Core.Check.Judge.Type.VarCon
        DDC.Core.Check.Judge.Type.Witness
        DDC.Core.Check.Judge.Eq
        DDC.Core.Check.Judge.Inst
        DDC.Core.Check.Judge.Sub
        DDC.Core.Check.Base
        DDC.Core.Check.Error
        DDC.Core.Check.ErrorMessage
        DDC.Core.Check.Exp
        DDC.Core.Check.Module
        DDC.Core.Check.Witness

        DDC.Core.Collect.Free
        DDC.Core.Collect.Free.Simple

        DDC.Core.Exp.DaCon        
        DDC.Core.Exp.WiCon

        DDC.Core.Fragment.Compliance
        DDC.Core.Fragment.Error
        DDC.Core.Fragment.Feature
        DDC.Core.Fragment.Profile

        DDC.Core.Lexer.Comments
        DDC.Core.Lexer.Offside
        
        DDC.Core.Module.Export
        DDC.Core.Module.Import
        DDC.Core.Module.Name

        DDC.Core.Parser.Base
        DDC.Core.Parser.Context
        DDC.Core.Parser.DataDef
        DDC.Core.Parser.Exp
        DDC.Core.Parser.ExportSpec
        DDC.Core.Parser.ImportSpec
        DDC.Core.Parser.Module
        DDC.Core.Parser.Param
        DDC.Core.Parser.Type
        DDC.Core.Parser.Witness

        DDC.Type.Check.Judge.Eq
        DDC.Type.Check.Judge.Kind
        DDC.Type.Check.Base
        DDC.Type.Check.CheckCon
        DDC.Type.Check.Config
        DDC.Type.Check.Context
        DDC.Type.Check.Data
        DDC.Type.Check.Error
        DDC.Type.Check.ErrorMessage
        
        DDC.Type.Collect.FreeT

        DDC.Type.Exp.Base
        DDC.Type.Exp.NFData

        DDC.Type.Pretty

                  
  GHC-options:
        -Wall
        -fno-warn-orphans
        -fno-warn-unused-do-bind
        -fno-warn-missing-methods
        -fno-warn-missing-signatures

  Extensions:
        NoMonomorphismRestriction
        FunctionalDependencies
        MultiParamTypeClasses
        UndecidableInstances
        ScopedTypeVariables
        StandaloneDeriving
        DeriveDataTypeable
        FlexibleInstances
        ParallelListComp
        FlexibleContexts
        ConstraintKinds
        DoAndIfThenElse
        PatternSynonyms
        KindSignatures
        PatternGuards
        BangPatterns
        InstanceSigs
        ViewPatterns
        RankNTypes