{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DerivingStrategies #-} module NewInt where --import qualified Data.IntSet as IS import qualified Data.IntMap.Strict as IM import Control.Lens import Data.Aeson import Data.Aeson.TH newtype NewInt a = NInt { _unNInt :: Int} deriving newtype (Eq,Ord,Show,Num,Read,Integral,Real,Enum) newtype NewIntMap a b = NIntMap { _unNIntMap :: IM.IntMap b} deriving (Eq,Ord,Show,Read) makeLenses ''NewInt makeLenses ''NewIntMap deriveJSON defaultOptions ''NewInt deriveJSON defaultOptions ''NewIntMap