fromList bs | (length bs) > maxLength = Nothing
            | (sort bs) == roundsList = Just $ Row bs
            | otherwise               = Nothing
            where maxLength  = toInt (maxBound :: Bell)
                  roundsList = [fromInt 1 .. fromInt $ length bs]


-- | Construct rounds on @n@ bells.
fromList bs | (length bs) > maxLength = Nothing
            | (sort bs) == roundsList = Just $ Row bs
            | otherwise               = Nothing
            where maxLength  = toInt (maxBound :: Bell)
                  roundsList = [fromInt 1 .. fromInt $ length bs]


-- | Construct rounds on @n@ bells.
fromList bs | (length bs) > maxLength = Nothing
            | (sort bs) == roundsList = Just $ Row bs
            | otherwise               = Nothing
            where maxLength  = toInt (maxBound :: Bell)
                  roundsList = [fromInt 1 .. fromInt $ length bs]


-- | Construct rounds on @n@ bells.