-- Is the fraction trivially cancellable, e.g. 30/50 or 1/11
-- Might need modifications for numbers > 99
isTrivial :: Int -> Int -> Bool
isTrivial a b =
    let astr = show a
        bstr = show b
        -- Cancelling must NOT remove all digits of num/den
        anull = null (astr \\ bstr)
        bnull = null (bstr \\ astr)
        -- Cancelling must remove some digits
        intersectNull = null $ intersect astr bstr
    in '0' `elem` (show a) || '0' `elem` (show b)
        || (a == b) || anull || bnull || intersectNull
isTrivial :: Int -> Int -> Bool
isTrivial a b =
    let astr = show a
        bstr = show b
        -- Cancelling must NOT remove all digits of num/den
        anull = null (astr \\ bstr)
        bnull = null (bstr \\ astr)
        -- Cancelling must remove some digits
        intersectNull = null $ intersect astr bstr
    in '0' `elem` (show a) || '0' `elem` (show b)
        || (a == b) || anull || bnull || intersectNull
isTrivial a b =
    let astr = show a
        bstr = show b
        -- Cancelling must NOT remove all digits of num/den
        anull = null (astr \\ bstr)
        bnull = null (bstr \\ astr)
        -- Cancelling must remove some digits
        intersectNull = null $ intersect astr bstr
    in '0' `elem` (show a) || '0' `elem` (show b)
        || (a == b) || anull || bnull || intersectNull