just a few random notes. most of this was way over my head.
https://github.com/pinealservo/mamedb
xml-conduit -- xml parsing
hasql - postgres lib
maybe keep all types etc in own file
cabal files: main-is Main.hs, list other of our modules.
build-depends are dependencies. install with stack.
stack build is like npm i
$$ -- ? $= -- ?
combinators from conduit
conduit is a streaming library thing
better than lazy io
there's also pipes, another group of streaming abstractions
also iostreams -- uses io
in:
parseMame :: MonadThrow m => ConduitM Event Machine m ()
parseMame = void $ tagIgnoreAttrs "mame" $ manyYield parseMachine
void is explicitly discarding the value
you can use the -> typeclass to build things, and use them as arrows, including in type signatures.
in rId <- insertRom -< rom
,
rom is input to insertrom ; insertrom's output is romid
stack ghci: ghci but for project
:r -- reload loaded module
11 -- oom