Skip to content
0:00 / 0:00

#edsl#embeddeddomainspecificlanguages#haskell

Anthony Cowley - Framing the Discussion with EDSLs

Boston Haskell

1.1K subscribers • 18 videos on Hallway

YouTube
  • Recommended by 2 people: 1 in engineering communities and 1 curated list.
  • Presented by Anthony Cowley

Advanced. Deep dive for people who know the field.

2.3K views11 years ago2 recommendations

Programming languagesSoftware designHaskellLanguage design and type systemsDesign patterns

Anthony Cowley explores the design and implementation of embedded domain-specific languages in Haskell to structure complex software systems.

Anthony Cowley's Talk for the Boston Haskell Meetup. March 25

Why it's here

2 people recommend this

u/acowin r/haskell • Recommends

Video Framing the Discussion with EDSLs

programming-talkscurated list on GitHubRecommends

Under “Haskell”

Framing the Discussion with EDSLs 01:41:41 by **Anthony Cowley** (There is a repository containing the slides and code here) (2015)

u/edwardkmettin r/haskell • Mentions

On “What is the advantage of tagless final style over normal datatypes?”

…igate this of course by converting first to a concrete data type and manipulating that, but there is still the price of going in and out of that form. On a vastly more positive note, Anthony Cowley has a pretty interesting take on how to mash up the ideas of finally tagless with vinyl and data types a la carte to get a nicely compositional EDSL: link to this video That might serve as a good summary of a lot of the benefits of finally tagless, but be warned the level of discourse rises pretty fast.…

u/maninaliftin r/haskell • Mentions

On “Implementing a new style of data validation.”

You may be interested in using or at least learning from Vinyl. The approach of that library is to parametrize all fields with a functor, allowing you to create records with different computational characteristics but the same structure. So by setting the functor to Identity you get the ordinary record and by setting it to Either you get one suitable for representing a validated record. There are a few reasonably accessible videos about them. If you don't mind some mathematical details look for the ones by the author, Jon Sterling (https://vimeo.com/95694918, https://vimeo.com/102785458), if you do then check out "framing the discussion on EDSLs" link to this video .

u/cieplakin r/haskell • Mentions

On “Recommendations for tutorials on designing and implementing EDSLs in Haskell”

You can get pretty far using ADTs. I would start simple and extend your DSL as need be. There are a bunch of great examples here: http://dev.stephendiehl.com/hask/#gadts-1 http://dev.stephendiehl.com/hask/#free-monads http://dev.stephendiehl.com/hask/#final-interpreters http://dev.stephendiehl.com/hask/#typelevel-strings If you have time to descend the rabbit hole, this talk is awesome: Anthony Cowley - Framing the Discussion with EDSLs (link to this video