@@ -11,11 +11,13 @@ module Elm.Interface
13 , privatize
13 , privatize
18−import Control.Monad (liftM, liftM2, liftM4, liftM5)
20+import Control.Monad (liftM, liftM3, liftM4, liftM5)
19import Data.Binary
21import Data.Binary
20import Data.Map.Strict ((!))
22import Data.Map.Strict ((!))
21import qualified Data.Map.Strict as Map
23import qualified Data.Map.Strict as Map
@@ -153,7 +155,10 @@ toPublicAlias iAlias =
154data DependencyInterface
156data DependencyInterface
155 = Public Interface
157 = Public Interface
156− | Private (Map.Map Name.Name Can.Union) (Map.Map Name.Name Can.Alias)
160+ (Map.Map Name.Name Can.Union)
161+ (Map.Map Name.Name Can.Alias)
159public :: Interface -> DependencyInterface
164public :: Interface -> DependencyInterface
@@ -162,10 +167,8 @@ public =
164private :: Interface -> DependencyInterface
169private :: Interface -> DependencyInterface
165−private (Interface _ _ unions aliases _) =
170+private (Interface pkg _ unions aliases _) =
167− (Map.map extractUnion unions)
168− (Map.map extractAlias aliases)
171+ Private pkg (Map.map extractUnion unions) (Map.map extractAlias aliases)
171extractUnion :: Union -> Can.Union
174extractUnion :: Union -> Can.Union
@@ -187,7 +190,7 @@ privatize :: DependencyInterface -> DependencyInterface
187privatize di =
190privatize di =
188 case di of
191 case di of
189 Public i -> private i
192 Public i -> private i
190− Private _ _ -> di
193+ Private _ _ _ -> di
@@ -240,12 +243,12 @@ instance Binary Binop where
240instance Binary DependencyInterface where
243instance Binary DependencyInterface where
241 put union =
244 put union =
242 case union of
245 case union of
243− Public a -> putWord8 0 >> put a
246+ Public a -> putWord8 0 >> put a
244− Private a b -> putWord8 1 >> put a >> put b
247+ Private a b c -> putWord8 1 >> put a >> put b >> put c
247 do n <- getWord8
250 do n <- getWord8
248 case n of
251 case n of
249 0 -> liftM Public get
252 0 -> liftM Public get
250− 1 -> liftM2 Private get get
253+ 1 -> liftM3 Private get get get
251 _ -> error "binary encoding of DependencyInterface was corrupted"
254 _ -> error "binary encoding of DependencyInterface was corrupted"