moduleBuildBox.Aspect.Single(Single(..))whereimportBuildBox.Pretty-- | A single valued piece of data.dataSinglea=Singleaderiving(Read,Show)instanceNuma=>Num(Singlea)where(+)(Singlef1)(Singlef2)=Single(f1+f2)(-)(Singlef1)(Singlef2)=Single(f1-f2)(*)(Singlef1)(Singlef2)=Single(f1*f2)abs(Singlef1)=Single(absf1)signum(Singlef1)=Single(signumf1)fromIntegeri=Single(fromIntegeri)instanceEqa=>Eq(Singlea)where(==)(Singlef1)(Singlef2)=f1==f2instancePrettya=>Pretty(Singlea)whereppr(Singlex)=pprx