qual' n =
    let (rname, rmodu) =  break (== '.') $ reverse n
        name = Ident $ reverse rname
    in case rmodu of
        [] -> UnQual name
        rmod ->  Qual (ModuleName . reverse $ tail rmod) name
qual' n =
    let (rname, rmodu) =  break (== '.') $ reverse n
        name = Ident $ reverse rname
    in case rmodu of
        [] -> UnQual name
        rmod ->  Qual (ModuleName . reverse $ tail rmod) name
qual' n =
    let (rname, rmodu) =  break (== '.') $ reverse n
        name = Ident $ reverse rname
    in case rmodu of
        [] -> UnQual name
        rmod ->  Qual (ModuleName . reverse $ tail rmod) name