{-# LANGUAGE DeriveAnyClass #-}
module SnelstartImport.Currency
  ( Currency(..)
  )
where

import Data.Csv

newtype Currency = Currency Double
  deriving newtype (Eq Currency
Eq Currency =>
(Currency -> Currency -> Ordering)
-> (Currency -> Currency -> Bool)
-> (Currency -> Currency -> Bool)
-> (Currency -> Currency -> Bool)
-> (Currency -> Currency -> Bool)
-> (Currency -> Currency -> Currency)
-> (Currency -> Currency -> Currency)
-> Ord Currency
Currency -> Currency -> Bool
Currency -> Currency -> Ordering
Currency -> Currency -> Currency
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Currency -> Currency -> Ordering
compare :: Currency -> Currency -> Ordering
$c< :: Currency -> Currency -> Bool
< :: Currency -> Currency -> Bool
$c<= :: Currency -> Currency -> Bool
<= :: Currency -> Currency -> Bool
$c> :: Currency -> Currency -> Bool
> :: Currency -> Currency -> Bool
$c>= :: Currency -> Currency -> Bool
>= :: Currency -> Currency -> Bool
$cmax :: Currency -> Currency -> Currency
max :: Currency -> Currency -> Currency
$cmin :: Currency -> Currency -> Currency
min :: Currency -> Currency -> Currency
Ord, Int -> Currency -> ShowS
[Currency] -> ShowS
Currency -> String
(Int -> Currency -> ShowS)
-> (Currency -> String) -> ([Currency] -> ShowS) -> Show Currency
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Currency -> ShowS
showsPrec :: Int -> Currency -> ShowS
$cshow :: Currency -> String
show :: Currency -> String
$cshowList :: [Currency] -> ShowS
showList :: [Currency] -> ShowS
Show, Currency -> Currency -> Bool
(Currency -> Currency -> Bool)
-> (Currency -> Currency -> Bool) -> Eq Currency
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Currency -> Currency -> Bool
== :: Currency -> Currency -> Bool
$c/= :: Currency -> Currency -> Bool
/= :: Currency -> Currency -> Bool
Eq, Field -> Parser Currency
(Field -> Parser Currency) -> FromField Currency
forall a. (Field -> Parser a) -> FromField a
$cparseField :: Field -> Parser Currency
parseField :: Field -> Parser Currency
FromField, Integer -> Currency
Currency -> Currency
Currency -> Currency -> Currency
(Currency -> Currency -> Currency)
-> (Currency -> Currency -> Currency)
-> (Currency -> Currency -> Currency)
-> (Currency -> Currency)
-> (Currency -> Currency)
-> (Currency -> Currency)
-> (Integer -> Currency)
-> Num Currency
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: Currency -> Currency -> Currency
+ :: Currency -> Currency -> Currency
$c- :: Currency -> Currency -> Currency
- :: Currency -> Currency -> Currency
$c* :: Currency -> Currency -> Currency
* :: Currency -> Currency -> Currency
$cnegate :: Currency -> Currency
negate :: Currency -> Currency
$cabs :: Currency -> Currency
abs :: Currency -> Currency
$csignum :: Currency -> Currency
signum :: Currency -> Currency
$cfromInteger :: Integer -> Currency
fromInteger :: Integer -> Currency
Num, Num Currency
Num Currency =>
(Currency -> Currency -> Currency)
-> (Currency -> Currency)
-> (Rational -> Currency)
-> Fractional Currency
Rational -> Currency
Currency -> Currency
Currency -> Currency -> Currency
forall a.
Num a =>
(a -> a -> a) -> (a -> a) -> (Rational -> a) -> Fractional a
$c/ :: Currency -> Currency -> Currency
/ :: Currency -> Currency -> Currency
$crecip :: Currency -> Currency
recip :: Currency -> Currency
$cfromRational :: Rational -> Currency
fromRational :: Rational -> Currency
Fractional)