packages feed

stratux-types 0.0.6 → 0.0.7

raw patch · 4 files changed

+176/−39 lines, 4 filesdep ~base

Dependency ranges changed: base

Files

changelog.md view
@@ -1,3 +1,7 @@+0.0.7++* Fix bug with ConstrainedClassMethods in type-classes.+ 0.0.6  * Create `SettingsSet` data type.
src/Data/Aviation/Stratux/Types/EmitterCategory.hs view
@@ -4,18 +4,18 @@ module Data.Aviation.Stratux.Types.EmitterCategory(   EmitterCategory(..) , AsEmitterCategory(..)-, AsEmitterCategoryNum(..) ) where -import Control.Category(Category(id)) import Control.Lens(Prism', prism', makeClassyPrisms, (^?), ( # )) import Control.Monad(mzero, Monad(return)) import Data.Aeson(FromJSON(parseJSON), ToJSON(toJSON), Value(Number), withScientific) import Data.Eq(Eq)+import Data.Int(Int) import Data.Maybe(Maybe(Just, Nothing)) import Data.Ord(Ord) import Data.Scientific(Scientific)-import Prelude(Show, Num)+import Data.Word(Word)+import Prelude(Show, Num, Integer, Float, Double)  -- $setup -- >>> :set -XOverloadedStrings@@ -32,40 +32,114 @@   | Large -- 75000-300000lb   | HighVortexLarge -- B757   | Heavy -- > 300000lb-  | HighPerformance -- >5G accel @ > 400KIAS+  | HighPerformance -- >5G accel ^ > 400KIAS   | Rotorcraft   deriving (Eq, Ord, Show)  makeClassyPrisms ''EmitterCategory -class AsEmitterCategoryNum a where-   _EmitterCategoryNum ::-    (Num a, Eq a) =>-    Prism'-      a-      EmitterCategory+-- |+--+-- >>> _EmitterCategory # NoEmitterCategory :: Scientific+-- 0.0+--+-- >>> _EmitterCategory # Light :: Scientific+-- 1.0+--+-- >>> _EmitterCategory # HighVortexLarge :: Scientific+-- 4.0+--+-- >>> _EmitterCategory # Rotorcraft :: Scientific+-- 7.0+instance AsEmitterCategory Scientific where+  _EmitterCategory =+    emitterCategoryNum -instance AsEmitterCategoryNum EmitterCategory where-  _EmitterCategoryNum =-    id+-- |+--+-- >>> _EmitterCategory # NoEmitterCategory :: Int+-- 0+--+-- >>> _EmitterCategory # Light :: Int+-- 1+--+-- >>> _EmitterCategory # HighVortexLarge :: Int+-- 4+--+-- >>> _EmitterCategory # Rotorcraft :: Int+-- 7+instance AsEmitterCategory Int where+  _EmitterCategory =+    emitterCategoryNum  -- | ----- >>> _EmitterCategoryNum # NoEmitterCategory :: Scientific+-- >>> _EmitterCategory # NoEmitterCategory :: Integer+-- 0+--+-- >>> _EmitterCategory # Light :: Integer+-- 1+--+-- >>> _EmitterCategory # HighVortexLarge :: Integer+-- 4+--+-- >>> _EmitterCategory # Rotorcraft :: Integer+-- 7+instance AsEmitterCategory Integer where+  _EmitterCategory =+    emitterCategoryNum++-- |+--+-- >>> _EmitterCategory # NoEmitterCategory :: Float -- 0.0 ----- >>> _EmitterCategoryNum # Light :: Scientific+-- >>> _EmitterCategory # Light :: Float -- 1.0 ----- >>> _EmitterCategoryNum # HighVortexLarge :: Scientific+-- >>> _EmitterCategory # HighVortexLarge :: Float -- 4.0 ----- >>> _EmitterCategoryNum # Rotorcraft :: Scientific+-- >>> _EmitterCategory # Rotorcraft :: Float -- 7.0-instance AsEmitterCategoryNum Scientific where-  _EmitterCategoryNum =+instance AsEmitterCategory Float where+  _EmitterCategory =     emitterCategoryNum +-- |+--+-- >>> _EmitterCategory # NoEmitterCategory :: Double+-- 0.0+--+-- >>> _EmitterCategory # Light :: Double+-- 1.0+--+-- >>> _EmitterCategory # HighVortexLarge :: Double+-- 4.0+--+-- >>> _EmitterCategory # Rotorcraft :: Double+-- 7.0+instance AsEmitterCategory Double where+  _EmitterCategory =+    emitterCategoryNum++-- |+--+-- >>> _EmitterCategory # NoEmitterCategory :: Word+-- 0+--+-- >>> _EmitterCategory # Light :: Word+-- 1+--+-- >>> _EmitterCategory # HighVortexLarge :: Word+-- 4+--+-- >>> _EmitterCategory # Rotorcraft :: Word+-- 7+instance AsEmitterCategory Word where+  _EmitterCategory =+    emitterCategoryNum+ emitterCategoryNum ::   (Num a, Eq a) =>   Prism'@@ -125,7 +199,7 @@ -- Just Rotorcraft instance FromJSON EmitterCategory where   parseJSON =-    withScientific "EmitterCategory" (\n -> case n ^? _EmitterCategoryNum of+    withScientific "EmitterCategory" (\n -> case n ^? _EmitterCategory of       Nothing ->         mzero       Just t ->@@ -145,4 +219,4 @@ -- "7" instance ToJSON EmitterCategory where   toJSON c =-    Number (_EmitterCategoryNum # c)+    Number (_EmitterCategory # c)
src/Data/Aviation/Stratux/Types/TargetType.hs view
@@ -4,18 +4,18 @@ module Data.Aviation.Stratux.Types.TargetType(   TargetType(..) , AsTargetType(..)-, AsTargetTypeNum(..) ) where -import Control.Category(Category(id)) import Control.Lens(makeClassyPrisms, Prism', prism', (^?), ( # )) import Control.Monad(Monad(return), mzero) import Data.Aeson(FromJSON(parseJSON), ToJSON(toJSON), Value(Number), withScientific) import Data.Eq(Eq)+import Data.Int(Int) import Data.Maybe import Data.Ord(Ord) import Data.Scientific(Scientific)-import Prelude(Num, Show)+import Data.Word(Word)+import Prelude(Num, Show, Integer, Float, Double)  -- $setup -- >>> :set -XOverloadedStrings@@ -34,29 +34,88 @@  makeClassyPrisms ''TargetType -class AsTargetTypeNum a where-   _TargetTypeNum ::-    (Num a, Eq a) =>-    Prism'-      a-      TargetType+-- |+--+-- >>> _TargetType # ModeS :: Scientific+-- 0.0+--+-- >>> _TargetType # Adsb :: Scientific+-- 1.0+--+-- >>> _TargetType # Tisb :: Scientific+-- 4.0+instance AsTargetType Scientific where+  _TargetType =+    targetTypeNum -instance AsTargetTypeNum TargetType where-  _TargetTypeNum =-    id+-- |+--+-- >>> _TargetType # ModeS :: Int+-- 0+--+-- >>> _TargetType # Adsb :: Int+-- 1+--+-- >>> _TargetType # Tisb :: Int+-- 4+instance AsTargetType Int where+  _TargetType =+    targetTypeNum  -- | ----- >>> _TargetTypeNum # ModeS :: Scientific+-- >>> _TargetType # ModeS :: Integer+-- 0+--+-- >>> _TargetType # Adsb :: Integer+-- 1+--+-- >>> _TargetType # Tisb :: Integer+-- 4+instance AsTargetType Integer where+  _TargetType =+    targetTypeNum++-- |+--+-- >>> _TargetType # ModeS :: Float -- 0.0 ----- >>> _TargetTypeNum # Adsb :: Scientific+-- >>> _TargetType # Adsb :: Float -- 1.0 ----- >>> _TargetTypeNum # Tisb :: Scientific+-- >>> _TargetType # Tisb :: Float -- 4.0-instance AsTargetTypeNum Scientific where-  _TargetTypeNum =+instance AsTargetType Float where+  _TargetType =+    targetTypeNum++-- |+--+-- >>> _TargetType # ModeS :: Double+-- 0.0+--+-- >>> _TargetType # Adsb :: Double+-- 1.0+--+-- >>> _TargetType # Tisb :: Double+-- 4.0+instance AsTargetType Double where+  _TargetType =+    targetTypeNum++-- |+--+-- >>> _TargetType # ModeS :: Word+-- 0+--+-- >>> _TargetType # Adsb :: Word+-- 1+--+-- >>> _TargetType # Tisb :: Word+-- 4+instance AsTargetType Word where+  _TargetType =     targetTypeNum  targetTypeNum ::
stratux-types.cabal view
@@ -1,5 +1,5 @@ name:               stratux-types-version:            0.0.6+version:            0.0.7 license:            BSD3 license-file:       LICENCE author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>