{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module Hcompta.Format.JCC.Unit where import Control.DeepSeq import Data.Data import Data.Eq (Eq(..)) import Data.Ord (Ord(..)) import Data.String (IsString) import Data.Text (Text) import qualified Data.Text as Text import Data.Typeable () import Prelude ((.), Int) import Text.Show (Show(..)) import qualified Hcompta.Unit as Unit -- * Type 'Unit' newtype Unit = Unit Text deriving (Data, Eq, IsString, Ord, Show, Typeable) instance Unit.Unit Unit where unit_empty = Unit "" unit_text (Unit t) = t instance NFData Unit where rnf (Unit t) = rnf t unit_length :: Unit -> Int unit_length = Text.length . Unit.unit_text