module_ :: HParser Module
module_ = addRange $
    do
        lexMODULE
        n <- modid
        let mes = MaybeExports_Nothing
        lexWHERE
        b <- body
        return (\r -> Module_Module r (MaybeName_Just n) mes b)
    <|>
    do 
        b <- body
        return (\r ->
            Module_Module r MaybeName_Nothing MaybeExports_Nothing b)
module_ :: HParser Module
module_ = addRange $
    do
        lexMODULE
        n <- modid
        let mes = MaybeExports_Nothing
        lexWHERE
        b <- body
        return (\r -> Module_Module r (MaybeName_Just n) mes b)
    <|>
    do 
        b <- body
        return (\r ->
            Module_Module r MaybeName_Nothing MaybeExports_Nothing b)
module_ = addRange $
    do
        lexMODULE
        n <- modid
        let mes = MaybeExports_Nothing
        lexWHERE
        b <- body
        return (\r -> Module_Module r (MaybeName_Just n) mes b)
    <|>
    do 
        b <- body
        return (\r ->
            Module_Module r MaybeName_Nothing MaybeExports_Nothing b)