First, see if it is as easy/safe to wildly refactor a Haskell codebase as we
keep saying it should be. It was easy, we'll have to see if it was safe.
Second, bring the codebase in line with a few best practices, some accepted
(line-length, formatting, import sorting, etc) and some that I'm proposing now
via this PR.
The new ones are:
Separate Model.* modules for each non-trivial data type
JSON instances (even though they're orphans, I think it's the best place
for them)
"virtual accessors" i.e. userName
Query functions, which must return DB a and cannot mention Handler
Anything dealing with Request/Response should appear in Handler.* or a
Helper.*
Helpers should be about cross-cutting concerns, and not be model or
handler-specific
This PR has two motivations:
First, see if it is as easy/safe to wildly refactor a Haskell codebase as we keep saying it should be. It was easy, we'll have to see if it was safe.
Second, bring the codebase in line with a few best practices, some accepted (line-length, formatting, import sorting, etc) and some that I'm proposing now via this PR.
The new ones are:
Model.*
modules for each non-trivial data typeuserName
DB a
and cannot mentionHandler
Handler.*
or aHelper.*
Handler
module per resource, not per URL