Generic Haskell: Practice and Theory / R. Hinze ; J. JeuringChapter 1: |
Introduction / 1: |
Type Systems / 1.1: |
HaskellÆs data Construct / 1.2: |
Towards Generic Programming / 1.3: |
Towards Generic Haskell / 1.4: |
Stocktaking / 1.5: |
Related Work / 1.6: |
Generic Haskell-Practice / 2: |
Mapping Functions / 2.1: |
Kind-Indexed Types and Type-Indexed Values / 2.2: |
Embedding-Projection Maps / 2.3: |
Reductions / 2.4: |
Pretty Printing / 2.5: |
Running Generic Haskell / 2.6: |
Generic Haskell-Theory / 3: |
The Simply Typed Lambda Calculus as a Type Language / 3.1: |
The Polymorphic Lambda Calculus / 3.2: |
Specializing Type-Indexed Values / 3.3: |
Bridging the Gap / 3.4: |
Conclusion / 4: |
Generic Haskell: Applications / Chapter 2: |
Generic Dictionaries |
Signature |
Properties |
Type-Indexed Tries |
Empty Tries |
Singleton Tries |
Look up / 2.7: |
Inserting and Merging / 2.8: |
Deleting / 2.9: |
XComprez: A Generic XML Compressor / 2.10: |
Implementing an XML Compressor as a Generic Program |
Analysis |
Conclusions |
The Zipper |
The Basic Idea / 4.1: |
Data Types as Fixed Points of Pattern Functors / 4.2: |
Type Indices of Higher Kinds / 4.3: |
Locations / 4.4: |
Navigation Functions / 4.5: |
Generic Properties of Datatypes / R. Backhouse ; P. Hoogendijk5: |
Theorems for Free |
Verifiable Genericity |
Commuting Datatypes - Introduction |
Structure Multiplication |
Broadcasts |
Allegories and Relators |
Allegories |
Relators |
Composition and Relators Are Parametric |
Division and Tabulation |
Domains |
Datatype = Relator = Membership |
Pointwise Closure / 5.1: |
Regular Relators / 5.2: |
Natural Transformations / 5.3: |
Membership and Fans / 5.4: |
Commuting Datatypes - Formal Specification / 6: |
Naturality Requirements / 6.1: |
Composition / 6.2: |
Half Zips and Commuting Relators / 6.3: |
Consequences / 7: |
Shape Preservation / 7.1: |
All Regular Datatypes Commute / 7.2: |
Basic Category Theory for Models of Syntax / R.L. Crole8: |
Prerequisites |
The Aims |
Learning Outcomes |
Syntax Defined from Datatypes |
An Example with Distinguished Variables and without Binding |
An Example with Distinguished Variables and Binding |
An Example with Arbitrary Variables and Binding |
An Example without Variables but with Binding |
Category Theory |
Categories |
Functors |
Products |
Coproducts / 3.5: |
Algebras / 3.6: |
The Functor 1 + (-): Set -? Set / 3.7: |
The Functor A + (-): Set -? Set / 3.8: |
The Functor 1 + (A × -): Set ? Set / 3.9: |
Models of Syntax |
A Model of Syntax with Distinguished Variables and without Binding |
A Model of Syntax with Distinguished Variables and with Binding |
A Model of Syntax with Arbitrary Variables and Binding |
A Model of Syntax without Variables but with Binding |
Where to Now? |
Appendix |
Lists |
Abstract Syntax Trees |
Inductively Defined Sets |
Rule Induction |
Recursively Defined Functions / 5.5: |
A Mathematical Semantics for Architectural Connectors / J.L. Fiadeiro ; A. Lopes ; M. WermelingerChapter 5: |
System Configuration in CommUnity |
Component Design |
Configurations |
Architectural Description in CommUnity |
Architectural Connectors |
Examples |
An ADL-Independent Notion of Connector |
Architectural Schools |
Adding Abstraction to Architectural Connectors |
Towards an Algebra of Connectors |
Role Refinement |
Role Encapsulation |
Role Overlay |
Concluding Remarks |
Author Index |
Generic Haskell: Practice and Theory / R. Hinze ; J. JeuringChapter 1: |
Introduction / 1: |
Type Systems / 1.1: |
HaskellÆs data Construct / 1.2: |
Towards Generic Programming / 1.3: |
Towards Generic Haskell / 1.4: |