2013-08-03 56 views
71

Có thể viết mô-đun trong Haskell, tái xuất mô-đun ngoài việc xuất tất cả mọi thứ có thể nhìn thấy bên trong?Mô-đun hiện tại xuất khẩu Haskell với mô-đun nhập bổ sung

Cho phép xem xét sau đây mô-đun:

module Test where 
import A 

f x = x 

Module này xuất khẩu tất cả mọi thứ định nghĩa bên trong, vì vậy nó xuất khẩu f nhưng bất cứ điều gì không tái xuất được nhập khẩu từ A.

Mặt khác, nếu tôi muốn tái xuất mô-đun A:

module Test (
    module A, 
    f 
) where 
import A 

f x = x 

Có cách nào để tái xuất A và xuất khẩu mọi thứ quy định tại Test mà không cần phải viết một cách rõ ràng mỗi chức năng được xác định trong phạm vi Test?

Trả lời

107

Có một giải pháp đơn giản, chỉ cần xuất các mô-đun từ các module:

module Test 
    (module Test 
    , module A 
    ) where 

import Prelude() 
import A 
f x = x 
+1

+1 Vì vậy, đơn giản như vậy! –

+0

Đã khai thác [tại đây] (https://github.com/ndmitchell/tagsoup/commit/1f1fff1e9ce4bd3233a2ef9607287b5018b516a7#diff-430b750c0b6fd0e9461c82565a1345dcR8). – PyRulez

+0

Ngoài ra, bất kỳ thông tin chi tiết nào về lý do tại sao tính năng này hoạt động? (Bất kỳ tài liệu nào?) – PyRulez