{-# LANGUAGE GeneralizedNewtypeDeriving, MultiParamTypeClasses #-}-- | A bearing in a degrees between 0 and 360.moduleData.Geo.Bearing(Bearing,bearing)whereimportData.Geo.Accessor.ValueimportData.FixednewtypeBearing=BearingDoublederiving(Eq,Ord,Enum,Show,Num,Fractional,Floating)-- | Construct a bearing with the number of degrees.bearing::Double->Bearingbearingx=Bearing(x`mod'`360)instanceValueBearingDoublewherevalue(Bearingx)=x