23 citations found. Retrieving documents...
P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In POPL'97, pages 470-482. ACM Press, 1997.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Phantom Types - Cheney, Hinze (2003)   (1 citation)  (Correct)

....but have proven dicult to incorporate into statically typed languages such as Haskell or Standard ML. Past approaches have included adding a rst class Dynamic type and typecase expressions [1, 2, 19] de ning generic functions by translation from polytypic languages to existing languages [15, 13], and implementing staged computation with run time type checking [8, 23] or compile time computation [22] Recently, Cheney and Hinze [6] and Baars and Swierstra [4] found that many of these features can already be implemented via an encoding into Haskell based on equality types comprising ....

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'97), Paris, France, pages 470-482. ACM Press, January 1997.


First-class Rules and Generic Traversal - Dolstra, Visser   (Correct)

....[28, 8] guarded patterns and transformational patterns [14] is an indication of the limitations imposed by the case construct. Furthermore, traversals cannot be de ned generically across data types, since polymorphism restricts reuse to one shape. Polytypic extensions of functional languages [15, 16], allow the generic de nition of functionality across data types, but do not support the de nition of traversals that cross type boundaries and can be instantiated with di erent functions. Rewriting Strategies Several extensions to rewriting have been proposed that try to combine the independent ....

....by de ning T such that t1 ; t2 is equivalent to t1 if t1 is not null, or to t2 otherwise. 7.3 Polytypic Programming Generic or polytypic programming makes it possible to write functions that operate on di erent data types. For instance, functions such as termSize can be readily de ned in PolyP [16] or using derivable type classes [15] However, other kinds of generic traversals are more troublesome. Consider topdown (Exp Var x Var y ) i.e. rename a variable named x to y ) We can write generic code for this using derivable type classes, for example. We create a class together ....

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In 24th ACM Symp. on Principles of Programming Languages (POPL'97), pages 470-482, 1997.


Polytypic Programming With Ease - Hinze (2001)   (8 citations)  (Correct)

....as direct consequences of two polytypic fusion laws. 1 1 Introduction This article proposes a new framework for a polytypic extension of functional programming languages such as Haskell or Standard ML. The framework is simpler, more general, and more ecient than previous ones such as PolyP [14] that are based on the initial algebra semantics of datatypes. A polytypic function is one that is de ned by induction on the structure of types. The archetypical example of a polytypic function is size : F a Int , which counts the number of values of type a in a given value of type F a. The ....

....the same on equal functors such as Rose and Rose 0 . Both problems disappear if we handle functor composition on the meta level generalizing rational trees to algebraic trees. 32 The classic approach to polytypic programming as realized in the polytypic programming language extension PolyP [14] is based on the initial algebra semantics of datatypes. Here, functors are modeled by the following grammar. F : B B : KT j Fst j Snd j B B j B B j F B Recursive datatypes are modeled by xpoints of associated base functors: the functor B , which is known as a type functor, denotes ....

[Article contains additional citation context not shown here]

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France, pages 470-482. ACM-Press, January 1997.


Derivable Type Classes - Hinze, Jones (2000)   (36 citations)  (Correct)

....1 Introduction A generic, or polytypic, function is one that the programmer writes once, but which works over many di erent data types. The standard examples are parsing and printing, serialising, taking equality, ordering, hashing, and so on. There is lots of work on generic programming [2, 8, 1, 6]. In this paper we present the design and implementation of an extension to Haskell that supports generic programming. At rst sight it might seem that Haskell s type classes are in competition with generic programming after all, both concern functions that work over many data types. But we ....

....So List is not a recursive type; rather, it expresses just the top layer of a list structure, leaving the original List to do the rest. But as we have seen, this is enough: a recursive function just does one layer of recursion at a time. This is unusual compared to other approaches. In PolyP [8], for instance, there is an additional type pattern for type recursion (at kind ) A very signi cant advantage here is that there is no problem with mutually recursive data types, nor with data types with many parameters, both of which make explicit recursion operators extremely clumsy and ....

[Article contains additional citation context not shown here]

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France, pages 470-482. ACM-Press, January 1997.


Polytypic Values Possess Polykinded Types - Hinze (2000)   (38 citations)  (Correct)

....Now, mapping functions can be de ned for type constructors of arbitrary arity. In the general case the mapping function takes n functions and applies the i th function to each element of type a i in a given structure of type f a 1 : a n . Alas, current approaches to polytypic programming (Jansson Jeuring, 1997; Hinze, 2000) do not allow to de ne these mapping functions at one stroke. The reason is simply that the mapping functions have di erent types for di erent arities. This observation suggests a natural extension of polytypic programming: it should be possible to assign a type to a polytypic value ....

....de nitions of map and red this amounts to showing that const e id = const e ( 1 O 2 ) 1 2 ) 1 1 ) O ( 2 2 ) uncurry ( 1 2 ) 1 2 ) uncurry ( 1 1 ) 2 2 ) All three conditions hold. Previous approaches to polytypic programming (Jansson Jeuring, 1997; Hinze, 1999) required the programmer to specify the action of a polytypic function for the composition of two type constructors: for instance, for fsize the polytypic programmer had to supply the equation fsizehf 1 f 2 i = fsumhf 1 i maphf 1 i (fsizehf 2 i) Interestingly, using reduce map ....

[Article contains additional citation context not shown here]

Jansson, Patrik, & Jeuring, Johan. (1997). PolyP|a polytypic programming language extension. Pages 470-482 of: Conference record 24th ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL'97, Paris, France. ACM-Press.


Polytypic Values Possess Polykinded Types - Hinze (2000)   (38 citations)  (Correct)

....Now, mapping functions can be de ned for type constructors of arbitrary arity. In the general case the mapping function takes n functions and applies the i th function to each element of type a i in a given structure of type F a 1 : a n . Alas, current approaches to polytypic programming [11, 8] do not allow to de ne these mapping functions at one stroke. The reason is simply that the mapping functions have di erent types for di erent arities. This observation suggests a natural extension of polytypic programming: it should be possible to assign a type to a polytypic value that depends ....

....de nitions of map and red this amounts to showing that const e id = const e ( 1 O 2 ) 1 2 ) 1 1 ) O ( 2 2 ) uncurry ( 1 2 ) 1 2 ) uncurry ( 1 1 ) 2 2 ) All three conditions hold. Previous approaches to polytypic programming [11, 7] required the programmer to specify the action of a polytypic function for the composition of two type constructors: for instance, for fsize the polytypic programmer had to supply the equation fsizehf 1 f 2 i = fsumhf 1 i maphf 1 i (fsizehf 2 i) Interestingly, using reducemap fusion this ....

[Article contains additional citation context not shown here]

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France, pages 470-482. ACM-Press, January 1997.


First Year Report - Winstanley (1997)   (Correct)

....example, while a conventional map applies a function to elements of a list, a polytypic map applies a function to every element of any datatype. A polytypic map has similar behaviour whether the datatype is a list, tree or any other structure. A well known polytypic extension to Haskell is PolyP [14]. This is a preprocessor that adds polytypic functions to a subset of Haskell, using the new keyword polytypic. PolyP can generate instances of map, zip, size, catamorphisms, etc. for regular types, which are a subset of the de nable datatypes. Initially it was thought that PolyP and Derive had ....

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470-482, Paris, France, 15-17 January 1997.


Language Independent Traversals for Program Transformation - Visser (2000)   (6 citations)  (Correct)

....depends on the availability of the entire signature before generation and is rather rigid in that incorporation of a new traversal scheme requires reprogramming the generator. Generation can also lead to scaling problems [10] 16 Section: Conclusion In polytypic functional programming in PolyP [9] and in in the generalization proposed by Hinze [8, 7] generic functions are de ned on a universal data type and conversion functions between regular data and the universal data type are provided. Polytypic functions can be implemented by implementing the conversion or by generating ....

Patrik Jansson and Johan Jeuring. PolyP | a polytypic programming language extension. In Conf. Record 24th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL'97, Paris, France, 15-17 Jan 1997, pages 470-482. New York, 1997.


Derivable Type Classes - Hinze, Jones (2000)   (36 citations)  (Correct)

....A generic, or polytypic, function is one that the programmer writes once, but which works over many di erent data types. The standard examples are parsing and printing, serialising, taking equality, ordering, hashing, and so on. There is lots of work on generic programming (Bird et al. 1996; Jansson Jeuring, 1997; Backhouse et al. 1999; Hinze, 2000b) In this paper we present the design and implementation of an extension to Haskell that supports generic programming. At rst sight it might seem that Haskell s type classes are in competition with generic programming after all, both concern functions ....

....So List is not a recursive type; rather, it expresses just the top layer of a list structure, leaving the original List to do the rest. But as we have seen, this is enough: a recursive function just does one layer of recursion at a time. This is unusual compared to other approaches. In PolyP (Jansson Jeuring, 1997), for instance, there is an additional type pattern for type recursion (at kind ) A very signi cant advantage here is that there is no problem with mutually recursive data types, nor with data types with many parameters, both of which make explicit recursion operators extremely clumsy and ....

[Article contains additional citation context not shown here]

Jansson, P. and Jeuring, J. (1997) PolyP|a polytypic programming language extension. Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France pp. 470-482. ACM-Press.


Generic Downwards Accumulations - Gibbons (2000)   (3 citations)  (Correct)

....constructive algorithmics has been the development of theories Copyright c Jeremy Gibbons, 1999. This paper is a revised version of Polytypic Downwards Accumulations, in LNCS 1422: Mathematics of Program Construction, ed. Johan Jeuring, 1998. 2 Jeremy Gibbons of generic [12, 13] or polytypic [14] operations, parameterized by a datatype. Another name for this kind of abstraction is higher order polymorphism. A generic program in this sense eliminates the unwanted ad hockery. The categorical approach to datatypes popularized by Malcolm [17] is an early example of generic programming: it ....

.... By the former we mean a construction based on semantic properties of the type functors concerned, such as Bird et al. s labelling construction G(A;X ) A F(1; X ) By the latter we mean a construction by induction over the syntactic presentation of the type functor, in the style of Jeuring [14]. In fact, our characterization in [10] was not even as general as Jeuring s scheme: we required the functor to be polynomial, that is, a sum of products, rather than regular as Jeuring allows. Hoogendijk [12, 13] argues for the inherent superiority of generic over polytypic de nitions, but for ....

Patrick Jansson and Johan Jeuring. PolyP { a polytypic programming language extension. In Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470-482, 1997.


A Generic Programming Extension for Haskell - Hinze (1999)   (22 citations)  (Correct)

....provides map and catamorphisms for each user de ned datatype. Functorial ML [11] has a similar functionality but a di erent background. It is based on the theory of shape polymorphism, in which values are separated into shape and contents. The polytypic programming language extension PolyP [9] o ers a special construct for de ning generic functions. The generic de nitions are similar to the ones given in this paper (modulo notation) except that the generic programmer must additionally consider cases for type composition and for type recursion (see [8] for a detailed comparison) All ....

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France, pages 470-482. ACM-Press, January 1997.


Polytypic Data Conversion Programs - Jeuring (2002)   (5 citations)  Self-citation (Jansson Jeuring)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In POPL'97, pages 470-482. ACM Press, 1997.


Prototyping Generic Programming in Template Haskell - Jansson (2004)   Self-citation (Jansson)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP  a polytypic programming language extension. In POPL'97, pages 470482. ACM Press, 1997.


Type-Indexed Data Types - Hinze, Jeuring, Loh (2001)   (7 citations)  Self-citation (Jeuring)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In ConferenceRecordof POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470-482. ACM Press, 1997.


Polytypic Programming in Haskell - Norell, Jansson (2004)   (1 citation)  Self-citation (Jansson)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP  a polytypic programming language extension. In POPL'97, pages 470482. ACM Press, 1997.


Universes for Generic Programs and Proofs in Dependent Type .. - Benke, Dybjer, Jansson (2003)   (1 citation)  Self-citation (Jansson)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In Proc. POPL'97, pages 470-482. ACM Press, 1997.


Type-Indexed Data Types - Hinze, Jeuring, Löh (2001)   (7 citations)  Self-citation (Jeuring)   (Correct)

....that type indexed data types will also be useful for generic DTD transformations [25] Generally, we believe that type indexed data types are just as important as type indexed functions. Background and related work. There is little related work on type indexed data types. Type indexed functions [26, 2, 29, 9, 18] were introduced more than a decade ago. There are several other approaches to type indexed functions, see Dubois et al. [8] Jay et al. [22] and Yang [36] but none of them mentions user de ned type indexed data types (Yang does mention value indexed types, usually called dependent types) ....

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470-482. ACM Press, 1997.


Polytypic Programming in Haskell - Norell, Jansson (2003)   (1 citation)  Self-citation (Jansson)   (Correct)

....datatype speci c mistakes in the de nition and secondly, if the datatype changes, there is no need to change the polytypic function. 1. 1 Related work A number of languages and tools for polytypic programming with Haskell have been described in the last few years: The Haskell extension PolyP [7] allows user de ned polytypic de nitions over regular datatypes. Derivable type classes [5] is an extension of the Glasgow Haskell Compiler (ghc) which allows limited polytypic de nitions. A similar extension exists also for Clean [1] Generic Haskell [4] allows polytypic de nitions over all ....

....we show how polytypic programs can be embedded in Haskell. The embedding uses datatype constructors to model the top level structure of datatypes, and the two parameter type class FunctorOf to relate datatypes with their structure. The embedding closely mimics the features of the language PolyP [7], an extension to (a subset of) Haskell that allows de nitions of polytypic functions over regular, unary datatypes. This section gives a brief overview of the embedding and compares it to PolyP. 2.1 Datatypes and pattern functors As mentioned earlier we allow de nition of polytypic functions ....

[Article contains additional citation context not shown here]

P. Jansson and J. Jeuring. PolyP  a polytypic programming language extension. In POPL'97, pages 470482. ACM Press, 1997.


Type-Indexed Data Types - Hinze, Jeuring, Löh (2001)   (7 citations)  Self-citation (Jeuring)   (Correct)

....eld where we expect that type indexed data types will be useful is generic DTD transformations [22] We think that type indexed data types are just as important as type indexed functions. Background and related work. There is little related work on type indexed data types. Type indexed functions [23, 2, 26, 8, 15] were introduced back in the nineties. There exist other approaches to type indexed functions, see Dubois et al. [7] Jay et al. [20] and Yang [33] but none of them mentions user de ned type indexed data types. Type indexed data types appear in the work on intensional type analysis [9, 6, 5, 30, ....

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 470-482. ACM Press, 1997.


Polytypic Data Conversion Programs - Jansson, Jeuring (2000)   (5 citations)  Self-citation (Jansson Jeuring)   (Correct)

....concludes with an overview of the results, a discussion and some suggestions for future work. 2 Polytypic programming The data conversion functions constructed in this paper are polytypic functions. This section brie y introduces polytypic functions in the context of the Haskell extension PolyP [11], and de nes some basic polytypic concepts used in the paper. We assume that the reader is familiar with the initial algebra approach to datatypes [16] and not completely unfamiliar with polytypic programming. For an introduction to polytypic programming, see [1] 2.1 Notation We use Haskell ....

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In Conference Record of POPL '97: The 24th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, pages 470-482. ACM Press, 1997. 45


Combining Generics and Dynamics - Achten, Hinze (2002)   (Correct)

No context found.

Jansson, P. and Jeuring, J. PolyP { a polytypic programming language extension. In Conference Record of POPL'97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1997, ACM Press, pp. 470-482.


Indexed Induction-Recursion - Peter Dybjer And (2001)   (Correct)

No context found.

P. Jansson and J. Jeuring. PolyP | a polytypic programming language extension. In Proc. POPL'97, pages 470-482. ACM Press, 1997.


Polytypic Programming with Ease - Hinze (2001)   (8 citations)  (Correct)

No context found.

Patrik Jansson and Johan Jeuring. PolyP|a polytypic programming language extension. In Conference Record 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'97, Paris, France, pages 470-482. ACM-Press, January 1997.

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