For the record I do agree that the schema
data Screen = Screen {
previous :: Maybe Screen,
...
}
is inferior to what they eventually had,
data ScreenHistory = ScreenHistory {
previous10 :: [Screen],
current :: Screen
}
-- Screen itself is nonrecursive
But I do think that storing JSON as a string was a weird antipattern in the first case, smacking of a premature optimization.