26 lines
720 B
Haskell
26 lines
720 B
Haskell
{-# 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 newtype (Monoid,Semigroup)
|
|
deriving (Eq,Ord,Show,Read)
|
|
|
|
makeLenses ''NewInt
|
|
makeLenses ''NewIntMap
|
|
deriveJSON defaultOptions ''NewInt
|
|
deriveJSON defaultOptions ''NewIntMap
|