Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell 2015
DOI: 10.1145/2804302.2804305
|View full text |Cite
|
Sign up to set email alerts
|

A typechecker plugin for units of measure: domain-specific constraint solving in GHC Haskell

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
6
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 18 publications
(6 citation statements)
references
References 15 publications
0
6
0
Order By: Relevance
“…Future work include applying the approach to Haskell, although we suspect the ergonomics would be slightly worse without native row types support. The code generation process can be automated by a typechecker plugin [7], and also provide better error message by directly traversing the FSM during type checking. While WebSockets are bidirectional, a connection can only be opened by the browser, which prevents use in peer-to-peer browser communication.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Future work include applying the approach to Haskell, although we suspect the ergonomics would be slightly worse without native row types support. The code generation process can be automated by a typechecker plugin [7], and also provide better error message by directly traversing the FSM during type checking. While WebSockets are bidirectional, a connection can only be opened by the browser, which prevents use in peer-to-peer browser communication.…”
Section: Discussionmentioning
confidence: 99%
“…For instance, if it is a hit, Svr will send a Hit message to Atk to notify it of the outcome, and also a Hit message with the coordinate being attacked to Def; similarly if it is a miss, Miss message will be sent instead. This is written in Scribble as a choice statement (line [7][8][9][10][11][12][13][14][15][16][17][18][19][20]. The syntax choice at Svr means the choice is being made at the role Svr, and also that Svr will the first sender of message in each of the possible branches: the hit branch on lines 8-9 or the miss branch on lines 11-12.…”
Section: The Scribble Protocol Languagementioning
confidence: 99%
“…By giving addition and multiplication these types and taking our refined notion of equality of dimensions into account, dimension checking simply becomes type checking. Gundry [16] has shown that the property of programs still having most general types is retained in this setting.…”
Section: Units Of Measure Using Typesmentioning
confidence: 99%
“…• Microsoft's F# [5] has units of measure built-in to static type checking; • C++'s Boost Units library [6] uses templates to check units statically; • Java has a proposed API adding classes for dimensioned quantities [7], but run-time casts are inevitable; • Haskell's type system can now encode basic units of measure as a library [8] or a typechecker plugin [9]; • Python libraries such as Pint [10] cannot do static checking of dimensional correctness, but implement runtime checks instead. Similarly, MATLAB has support for dynamic unit checking using the Symbolic Math Toolbox [11].…”
Section: Units Of Measure Using Typesmentioning
confidence: 99%
“…Recent applications of session types to the reverse-engineering of large and complex distributed systems [12,29] have led to the need of handling potentially large and complex session types. Analogously to the current trend of modern compilers to rely on external tools such as SMT-solvers to solve complex constraints and offer strong guarantees [16,23,31,32], state-of-the-art model checkers can be used to off-load expensive tasks from session type tools such as [29,37,42].…”
Section: Introductionmentioning
confidence: 99%