Thanks for the Dinesman link. I get the same answer as you with this code. Purposely left just a test so extending it can maybe be used as an exercise for some haskell students.

\> data Lives = Lives {n::String,fl::Int}

\> db = [b,c,f,m,s]

\> b = Lives {n="b", fl=3}

\> c = Lives {n="c", fl=2}

\> f = Lives {n="fl1",fl=4}

\> m = Lives {n="m", fl=5}

\> s = Lives {n="s", fl=1}

\> name :: Lives -> String
\> name (Lives n _) = n

\> flr :: Lives -> Int

\> flr (Lives _ f) = f

\> isOK :: [Lives] -> Bool

\> isOK db = if (flr (db!!0) /= 5

\> && flr (db!!1) /= 1

\> && flr (db!!2) /= 5

\> && flr (db!!2) /= 1

\> && abs (flr (db!!4) - flr (db!!2)) > 1

\> && abs (flr (db!!2) - flr (db!!1)) > 1)

\> then True

\> else False

\> main = print $ isOK db

& main
==>
True