-- | Construct a row length.
makeLength   :: Int -> Length
makeLength i | i < minLength = error $ "Length must be >= " ++ show minLength
             | i > maxLength = error $ "Length must be <= " ++ show maxLength
             | otherwise     = Length i
             where minLength = getLength (minBound :: Length)
                   maxLength = getLength (maxBound :: Length)
makeLength   :: Int -> Length
makeLength i | i < minLength = error $ "Length must be >= " ++ show minLength
             | i > maxLength = error $ "Length must be <= " ++ show maxLength
             | otherwise     = Length i
             where minLength = getLength (minBound :: Length)
                   maxLength = getLength (maxBound :: Length)
makeLength i | i < minLength = error $ "Length must be >= " ++ show minLength
             | i > maxLength = error $ "Length must be <= " ++ show maxLength
             | otherwise     = Length i
             where minLength = getLength (minBound :: Length)
                   maxLength = getLength (maxBound :: Length)