Enhancing PureScript's Pursuit

Harry Garrood

The problem

  • A fair bit of reusable PureScript code exists
  • We want to make it accessible and discoverable

What kind of questions do we want Pursuit to answer?

Pursuit now

  • Haskell web application (Yesod)
  • Small amount of JavaScript (!)

HTML documentation

  • Package overview page
  • Links to dependencies
  • Source links via GitHub
  • Package authors run a tool locally and upload

GitHub integration

  • Authentication (OAuth)
  • Displaying readme files
  • Source links
  • Backup

Interlude: Rows

type Person = { name :: String, age :: Int }
p :: Person    =>    p.name :: String
type Person = Prim.Object (name :: String, age :: Int)
log :: forall e. String -> Eff (console :: CONSOLE | e) Unit

Hoogle

  • Store an intermediate form of data
  • Generate Hoogle input files
  • Fiddle to make it parseable by haskell-src-exts
  • Use Hoogle library to create a database
  • Regenerate periodically