| Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002. |
.... principles for traversal strategies (the latter being addressed to some extent in [15] Strategic programming should be elaborated to cover generic datatype changing transformations [23] as needed, for example, in the context of XML format evolution [23] The notion of type indexed datatypes [13] might be useful in this context. The interaction of strategies and constraint programming needs to be investigated. Also, the precise relation between strategic programming and attribute grammars has to analysed. The precision of types even in a strongly typed setting could be ....
R. Hinze, J. Jeuring, and A. L oh. Type-Indexed Data Types. In Proc. of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), volume 2386 of LNCS, pages 148--174. Springer-Verlag, 2002.
....language extension has been proposed in [HP01] However, the proposal in its current form comes with a number of limitations that make it unsuitable for our purposes. In particular, neither multi parameter type classes are supported nor generic types of a kind other than . As pointed out in [HJL02] multi parameter type classes in combination with functional dependencies [Jon00] can be coerced into implementing some forms of type indexed types. Generally, this approach has its limitations: rstly, it works only for type constructors of some kinds and, secondly, the marshalling between ....
....a look at a general approach to overcome the above mentioned limitation of encoding type indexed types by type classes. 4. 3 The Concrete Implementation of the Type Mapping Type indexed data types can be implemented by binary type classes that relate the type index to the representation type [HJL02] In other words, to de ne a type indexed type TI of kind with type index , TI h : i : we introduce a type class class TI j where : The type class TI essentially denotes a mapping of types : to types : and, hence, encodes a type dependent representation ....
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed datatypes. In Proceedings of the 6th Mathematics of Program Construction Conference. Springer-Verlag, 2002.
....insight to the calculus of TSS. We hope to extend this work in the future with type level type analysis. The languages ML i and Q i include Typerec that analyzes types to produce other types. This operator is often important in describing the types of polytypic de nitions. Hinze et al. . [15] provide a number of examples of higher order polytypic term de nitions that require higher order polytypic type de nitions. However, adding an operator to analyze higher order constructors will require machinery at the kind level like TSS s Q i [30] or Despeyroux et al. . 6, 7] This work ....
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. Available at http://www.cs.uu.nl/~johanj/publications/publications.html, 2001.
No context found.
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
R. Hinze, J. Jeuring, and A. Loh. Type-indexed datatypes. In E.A. Boiten and B. Moller, editors, Proceedings of the 6th Mathematics of Program Construction Conference, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
R. Hinze, J. Jeuring, A. Loh, Type-indexed data types, in: Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, Vol. 2386 of LNCS, 2002, pp. 148--174.
No context found.
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types, 2002. In submission.
No context found.
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
No context found.
R. Hinze, J. Jeuring, A. Loh, Type-indexed data types, in: Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, Vol. 2386 of LNCS, 2002, pp. 148--174.
No context found.
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
....code can be converted to an ordinary Haskell value by specializing it to our Company datatype as follows: updateGrand : Float updateGrand = updatePre#Company#. 2. 5 Further Applications Other applications which benefit from Dependency style Generic Haskell include type indexed datatypes [19, 17], such as generic dictionaries and the zipper: a data structure used to represent a tree together with a subtree that is the focus of attention, where that focus may move left, right, up, or down the tree. These navigation functions depend heavily upon each other, and create a heavy notational ....
....a dependency refers (often) to an entire generic function, which includes cases of polymorphic type. The development of Generic Haskell is example driven. We encountered the need for dependencies when we implemented the digital searching and zipper examples in our work on type indexed datatypes [19]. Most other approaches we have seen only use simple examples such as map and zip as their motivating examples. 7. DISCUSSION We have made design choices at several points when developing the language. We discuss two here. Firstly, distinguishing dependency variables from ordinary variables has ....
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
....conventional search trees based on ordering relations tries support look up and update in time proportional to the size of the search key. This means, however, that every key type gives rise to a di erent trie structure. In fact, tries serve as a nice example of so called type indexed data types [14], data types that are constructed in a generic way from an argument data type. Using phantom types we can implement tries and other type indexed data types in at least two di erent ways. A functional encoding A trie represents a nite map, a mapping from keys to values. Consequently, the trie ....
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Eerke A. Boiten and Bernhard Moller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002), Dagstuhl, Germany, July 8-10, 2002, volume 2386 of Lecture Notes in Computer Science, pages 148-174. Springer-Verlag, July 2002.
....compressing XML documents, and the zipper. The applications are described in more detail below. In the examples, we will encounter several new generic programming concepts: Type indexed data types. A type indexed data type is constructed in a generic way from an argument data type [23]. It is the equivalent of a type indexed function on the level of data types. Default cases. To define a generic function that is the same as another function except for a few cases we use a default case [10] If the new definition does not provide a certain case, then the default case applies ....
....tree [44] This data structure fits particularly well in the current setting since Patricia trees are a variety of tries. For clarity, we will use qualified names when referring to entities defined in the hypothetical module Patricia. A few remarks are in order. FMap is a type indexed data type [23]. The only way to construct values of type FMap is by means of the functions in the interface. Furthermore, in contrast with type indexed functions, the constructor index Con doesn t mention a constructor description anymore. This is because a type cannot depend on a value, so the constructor ....
[Article contains additional citation context not shown here]
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Proceedings of the 6th Mathematics of Program Construction Conference, MPC'02, volume 2386 of LNCS, pages 148--174, 2002.
....t is a type variable of the given kind, where #kind# ranges over grounded kinds (i.e. those without kind variables) An example is the so called categorical strength: strength t : t (a, b) strength t ta b = map t (#x (x , b) ta 3. 6 Type indexed types Type indexed types [4] can be defined just as type indexed values, except that the righthand side of a definition is a constructor followed by a type. Thus the syntax consists of a collection of definitions, indexed over the type constructors, of the form: #Conid# #stype# tv1 . tvn = #con# #type# New ....
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed data types. In Proceedings of the 6th Conference on Mathematics of Program Construction (MPC 2002.
....document. In Generic Haskell, the structure, or shape, of a value of a data type is obtained by replacing all strings by units (empty tuples) Thus we obtain a value of a new data type, in which occurrences of the type String have been replaced by the type ( Such a type is a type indexed type [20]. For example, the type we obtain from the data type Book is isomorphic to the following data type: data SHAPEBook = SHAPEBook SHAPEBook Attrs SHAPETitle SHAPEAuthor SHAPEDate [SHAPEChapter] data SHAPEBook Attrs = SHAPEBook Attrs bookLang : SHAPELang data SHAPELang = SHAPEEnglish ....
....DTD aware XML tools, there are some features of XML tools that are harder to express in Generic Haskell. Some of the functionality in the DOM, such as the methods childNodes and firstChild in the Node interface, is hard to express in a typed way. Flexible extensions of type indexed data types [20] might o#er a solution to this problem. We think fusing HaXml, or a tool based on Schemas, with Generic Haskell, obtaining a domain specific language [7] for generic programming on DTD s or Schemas is a promising approach. For tools that do not depend on a DTD we can use the untyped approach ....
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. To appear in Proceedings of the 6th Mathematics of Program Construction Conference, 2002.
....t is a type variable of the given kind, where #kind# ranges over grounded kinds (i.e. those without kind variables) An example is the so called categorical strength: strength t : t (a, b) strength t ta b = map t (#x (x , b) ta 3. 6 Type indexed types Type indexed types [3] can be defined just as type indexed values, except that the righthand side of a definition is a constructor followed by a type. Thus the syntax consists of a collection of definitions, indexed over the type constructors, of the form: #Conid# #stype# tv1 . tvn = #con# #type# New ....
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed datatypes. Unpublished, 2001. http://www.cs.uu.nl/~johanj/publications/tidata.ps.
....the given kind, where #kind# ranges over grounded kinds (i.e. those without kind variables) An example is the so called categorical strength: strength t : # # # : t a # b # t (a, b) strength t ta b = map t (#x # (x , b) ta 3. 6 Type indexed types Type indexed types [3] can be defined just as type indexed values, except that the righthand side of a definition is a constructor followed by a type. Thus the syntax consists of a collection of definitions, indexed over the type constructors, of the form: type #Conid# #stype# tv1 . tvn = #con# #type# New ....
Ralf Hinze, Johan Jeuring, and Andres L oh. Type-indexed datatypes. Unpublished, 2001. http://www.cs.uu.nl/~johanj/publications/tidata.ps.
No context found.
R. Hinze, J. Jeuring, and A. Loh. Type-Indexed Data Types. In E. Boiten and B. Moller, editors, Proc. of Mathematics of Program Construction (MPC 2002.
No context found.
R. Hinze, J. Jeuring, and A. L oh. Type-indexed data types. In E. Boiten and B. M oller, editors, Proc. Mathematics of Program Construction (MPC'02), 2002.
No context found.
Ralf Hinze, Johan Jeuring, and Andres Loh. Type-indexed data types. In Eerke Boiten and Bernhard Mller, editors, Proceedings of the Sixth International Conference on Mathematics of Program Construction (MPC 2002.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC