
-- Takes an IPAddr and returns another one describing the network subnet :: (Word (Host a) ~ Word (Mask a)) => a -> a subnet a = let m = mask a h = host a in makeIPAddr (fromBits $ (bits h) .&. (bits m)) $ m
Excellent!
Note that I didn't put a IPAddr context since in your code subnet is a method of this class (with a default implementation), if this wasn't your intention you should correct the indentation.
You are right, the context was not necessary. The function is in fact a default implementation. BTW: Does what I'm trying to do make any sense at all? Does anyone know of a better/simpler way to do this (i.e making most of these computations independant of the exact underlying type)? Anyways, thanks a lot for your help, Patrick
-- Jedaï
-- ===================== Patrick LeBoutillier Rosemère, Québec, Canada