Filters








164 Hits in 3.5 sec

Haskell Type Constraints Unleashed [chapter]

Dominic Orchard, Tom Schrijvers
2010 Lecture Notes in Computer Science  
The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful features, leading to an expressive language of type terms.  ...  We introduce constraint synonyms and constraint families, and illustrate their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples.  ...  Acknowledgements We are grateful to Manuel Chakravarty and Simon Peyton Jones for discussions and explaining details of GHC's associated type families.  ... 
doi:10.1007/978-3-642-12251-4_6 fatcat:cqtews25czb6rdly67a5gw7av4

Type-Safe Two-Level Data Transformation [chapter]

Alcino Cunha, José Nuno Oliveira, Joost Visser
2006 Lecture Notes in Computer Science  
We rely on various techniques for generic functional programming to implement the formalization in Haskell.  ...  guarded by a strong type system.  ...  Mu :: Dist f ⇒ (∀a.Type a → Type (f a)) → Type (Mu f ) Here f is a functor 3 , and the class constraint Dist f expresses that we require functors to commute with monads.  ... 
doi:10.1007/11813040_20 fatcat:ox4e3jiiordhfjo6sfvvqdp5rq

Modular, higher order cardinality analysis in theory and practice

ILYA SERGEY, DIMITRIOS VYTINIOTIS, SIMON L. PEYTON JONES, JOACHIM BREITNER
2017 Journal of functional programming  
Type systems use unification variables to allow much richer information flow -but at the cost of generating constraints involving subtyping and bounds that are tricky to solve.  ...  Our implementation handles all of Haskell, or rather the Core language to which Haskell is translated by GHC.  ... 
doi:10.1017/s0956796817000016 fatcat:ffb4nabjmfgrlcr2q3akytwlbu

Modular, higher-order cardinality analysis in theory and practice

Ilya Sergey, Dimitrios Vytiniotis, Simon Peyton Jones
2014 Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '14  
Type systems use unification variables to allow much richer information flow -but at the cost of generating constraints involving subtyping and bounds that are tricky to solve.  ...  Our implementation handles all of Haskell, or rather the Core language to which Haskell is translated by GHC.  ... 
doi:10.1145/2535838.2535861 dblp:conf/popl/SergeyVJ14 fatcat:4osrqwgrz5b3zim6376usiezje

Static contract checking for Haskell

Dana N. Xu, Simon Peyton Jones, Koen Claessen
2008 Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '09  
In this paper, we describe a sound and automatic static verification framework for Haskell, that is based on contracts and symbolic execution.  ...  Static verification techniques have been applied to imperative and object-oriented languages, like Java and C#, but few have been applied to a higher-order lazy functional language, like Haskell.  ...  decidability closely follows that of the constraint domain.  ... 
doi:10.1145/1480881.1480889 dblp:conf/popl/XuJC09 fatcat:2xup7tqanndhtac4o3rf75bgkq

Static contract checking for Haskell

Dana N. Xu, Simon Peyton Jones, Koen Claessen
2009 SIGPLAN notices  
In this paper, we describe a sound and automatic static verification framework for Haskell, that is based on contracts and symbolic execution.  ...  Static verification techniques have been applied to imperative and object-oriented languages, like Java and C#, but few have been applied to a higher-order lazy functional language, like Haskell.  ...  decidability closely follows that of the constraint domain.  ... 
doi:10.1145/1594834.1480889 fatcat:4qo5d4rxevgipar3dpn6spbnte

The Intel labs Haskell research compiler

Hai Liu, Neal Glew, Leaf Petersen, Todd A. Anderson
2013 Proceedings of the 2013 ACM SIGPLAN symposium on Haskell - Haskell '13  
The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries.  ...  In this paper, we describe our Haskell compiler stack, its implementation and optimization approach, and present benchmark results comparing it to GHC. • An experiment to reuse GHC as a Haskell frontend  ...  Types MIL is loosely typed in that every variable has a type, and those types must satisfy certain properties.  ... 
doi:10.1145/2503778.2503779 dblp:conf/haskell/LiuGPA13 fatcat:ri6z6z6j4zfv7depadske6rke4

Google's MapReduce programming model — Revisited

Ralf Lämmel
2008 Science of Computer Programming  
We use typed functional programming (specifically Haskell) as a tool for design recovery and executable specification.  ...  This size function implies the Data constraints for the intermediate key and value domains in the type of quickScan.  ...  Google has fully unleashed the power of list homomorphisms and friends for massive, simple and robust parallel programming.  ... 
doi:10.1016/j.scico.2007.07.001 fatcat:kt6gk463fngjtgcvaijuiebphy

Translating Alloy Specifications to UML Class Diagrams Annotated with OCL [chapter]

Ana Garis, Alcino Cunha, Daniel Riesco
2011 Lecture Notes in Computer Science  
The proposed transformation enables current UML-based tools to also be applied to Alloy specifications, thus unleashing its potential for MDE.  ...  We have implemented the proposed transformation in Haskell, generating syntax compatible with popular UML+OCL modeling applications.  ...  On the other hand, from the Alloy practitioners point of view, a myriad of UML tools could be used in order to unleash Alloy potential for MDE.  ... 
doi:10.1007/978-3-642-24690-6_16 fatcat:cwlkocjpkrd5fb62cs7x6ydu24

Batcher's odd-even merging network revealed

RALF HINZE, CLARE MARTIN
2018 Journal of functional programming  
The types make explicit that the lifted operations are applied only to sequences of equal length. You should think of sequences as Agda vectors, not Haskell lists.  ...  In the spirit of wholemeal programming (Hinze, 2009) we lift ordering, minimum, and maximum point-wise to finite sequences of type A-and in the spirit of Haskell we overload the operator symbols to denote  ... 
doi:10.1017/s0956796818000163 fatcat:2pks3pepjnd2tl47cswpxaviey

Programs and Proofs: Mechanizing Mathematics with Dependent Types [article]

Ilya Sergey
2014 Zenodo  
This project contains the Coq sources, the lectures and the exercises for the course Programs and Proofs: Mechanizing Mathematics with Dependent Types.  ...  The mechanism of defining canonical structures for concrete data types is reminiscent of the resolution of type class constraints in Haskell [64] .  ...  a type Int → 3 in Haskell, as it does not make sense.  ... 
doi:10.5281/zenodo.4996238 fatcat:34mga3vdkjhdtfksnjiwu6yknq

Marginality: Addressing the Root Causes of Extreme Poverty

Franz W. Gatzweiler, Heike Baumüller, Christine Husmann, Joachim von Braun
2011 Social Science Research Network  
These causal complexes can, for instance, comprise different types of livelihood systems or different types of poverty traps.  ...  Of cou Figure 7: Mar e differentia service, mark different ef stem becaus ering from so roduces the to unleash t er unleashe ecomes effe marginality-e ary according mmunity (e.g hables  ...  The concept of marginality therefore refers to the constraints which need to be lifted in order to recognize capabilities and transform them into functioning.  ... 
doi:10.2139/ssrn.2235654 fatcat:az23j4gak5gf7gekktfceoc3fm

Translating between Alloy specifications and UML class diagrams annotated with OCL

Alcino Cunha, Ana Garis, Daniel Riesco
2013 Journal of Software and Systems Modeling  
Field declarations can also introduce multiplicity constraints: for example, type maps a name to exactly one type, while names maps each book to some names. In Alloy everything is a relation.  ...  On the other hand, from the Alloy practitioners point of view, a myriad of UML tools could be used in order to unleash Alloy's potential for MDE.  ... 
doi:10.1007/s10270-013-0353-5 fatcat:3nlsd2agkrho7k63xwkqq33s7a

JavaGI: Generalized Interfaces for Java [chapter]

Stefan Wehr, Ralf Lämmel, Peter Thiemann
Lecture Notes in Computer Science  
Its formal type system is derived from Featherweight GJ.  ...  , and existential quantification for interface-bounded types.  ...  Here is a Haskell function using the Connection type class for inserting a customer: The type variable a serves as a placeholder for a connection type, which is restricted by the constraint Connection  ... 
doi:10.1007/978-3-540-73589-2_17 fatcat:2zv7ds276nac3etuamoerdlmxy

Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore [chapter]

Stephan Brandauer, Elias Castegren, Dave Clarke, Kiko Fernandez-Reyes, Einar Broch Johnsen, Ka I. Pun, S. Lizeth Tapia Tarifa, Tobias Wrigstad, Albert Mingkun Yang
2015 Lecture Notes in Computer Science  
The age of multi-core computers is upon us, yet current programming languages, typically designed for single-core computers and adapted post hoc for multi-cores, remain tied to the constraints of a sequential  ...  Streams are abstract types, but metaphorically, the type Stream a can be thought of as the Haskell type: 1 type Stream a = Fut (Maybe (St a)) 2 data St a = St a (Stream a) That is, a stream is essentially  ...  If it is not empty, return c, otherwise return f (). 6 As work in parallel types and combinators is work in progress, this list is likely to change and grow. 7 Relies on Maybe data type: in Haskell syntax  ... 
doi:10.1007/978-3-319-18941-3_1 fatcat:rhdimubisjab3d3khgi7uf7slu
« Previous Showing results 1 — 15 out of 164 results