packages feed

casr-logbook 0.0.12 → 0.1.0

raw patch · 47 files changed

+795/−1826 lines, 47 filesdep +digitdep +lensdep +timePVP ok

version bump matches the API change (PVP)

Dependencies added: digit, lens, time

API changes (from Hackage documentation)

- Data.Aviation.Casr.Logbook.ARN: ARN :: String -> ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance Data.String.IsString Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ARN.ARN
- Data.Aviation.Casr.Logbook.ARN: newtype ARN
- Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Aircraft.Aircraft
- Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Aircraft.Aircraft
- Data.Aviation.Casr.Logbook.DOB: DOB :: String -> DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance Data.String.IsString Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: instance GHC.Show.Show Data.Aviation.Casr.Logbook.DOB.DOB
- Data.Aviation.Casr.Logbook.DOB: newtype DOB
- Data.Aviation.Casr.Logbook.Date: Date :: String -> Date
- Data.Aviation.Casr.Logbook.Date: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance Data.String.IsString Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Date.Date
- Data.Aviation.Casr.Logbook.Date: newtype Date
- Data.Aviation.Casr.Logbook.DayNight: Day :: DayNight
- Data.Aviation.Casr.Logbook.DayNight: Night :: DayNight
- Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.DayNight.DayNight
- Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.DayNight.DayNight
- Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Engine.Engine
- Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Engine.Engine
- Data.Aviation.Casr.Logbook.Entries: flightEntries :: Entries -> [FlightEntry]
- Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entries: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Entries.Entries
- Data.Aviation.Casr.Logbook.Entry: EntryExam :: ExamEntry -> Entry
- Data.Aviation.Casr.Logbook.Entry: EntryFlight :: FlightEntry -> Entry
- Data.Aviation.Casr.Logbook.Entry: exam :: Date -> String -> String -> String -> ARN -> Int -> Int -> Entry
- Data.Aviation.Casr.Logbook.Entry: flight :: Sequence -> Date -> Aircraft -> Hours -> PoB -> FlightPath -> DayNight -> PiC -> TrackLogs -> Visualisations -> Images -> Videos -> Entry
- Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.Entry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Entry.Entry
- Data.Aviation.Casr.Logbook.ExamEntry: ExamEntry :: Date -> String -> String -> String -> ARN -> Int -> Int -> ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: data ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.ExamEntry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ExamEntry.ExamEntry
- Data.Aviation.Casr.Logbook.FlightEntry: FlightEntry :: Sequence -> Date -> Aircraft -> Hours -> PoB -> FlightPath -> DayNight -> PiC -> TrackLogs -> Visualisations -> Images -> Videos -> FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: data FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightEntry: instance GHC.Show.Show Data.Aviation.Casr.Logbook.FlightEntry.FlightEntry
- Data.Aviation.Casr.Logbook.FlightPath: directPath :: String -> String -> FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.FlightPath.FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.FlightPath.FlightPath
- Data.Aviation.Casr.Logbook.FlightPath: pathlist :: FlightPath -> [String]
- Data.Aviation.Casr.Logbook.Hours: Hours :: Int -> Int -> Hours
- Data.Aviation.Casr.Logbook.Hours: addHours :: Hours -> Hours -> Hours
- Data.Aviation.Casr.Logbook.Hours: data Hours
- Data.Aviation.Casr.Logbook.Hours: fractionalHours :: Fractional a => Hours -> a
- Data.Aviation.Casr.Logbook.Hours: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Hours.Hours
- Data.Aviation.Casr.Logbook.Hours: zeroHours :: Hours
- Data.Aviation.Casr.Logbook.Image: Image :: String -> (Maybe String) -> ImageType -> Image
- Data.Aviation.Casr.Logbook.Image: data Image
- Data.Aviation.Casr.Logbook.Image: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.Image: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Image.Image
- Data.Aviation.Casr.Logbook.ImageType: Jpg :: ImageType
- Data.Aviation.Casr.Logbook.ImageType: Png :: ImageType
- Data.Aviation.Casr.Logbook.ImageType: data ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.ImageType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.ImageType.ImageType
- Data.Aviation.Casr.Logbook.Images: Images :: [Image] -> Images
- Data.Aviation.Casr.Logbook.Images: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Images.Images
- Data.Aviation.Casr.Logbook.Images: newtype Images
- Data.Aviation.Casr.Logbook.Log: Log :: Name -> DOB -> ARN -> Entries -> Log
- Data.Aviation.Casr.Logbook.Log: data Log
- Data.Aviation.Casr.Logbook.Log: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Log: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Log.Log
- Data.Aviation.Casr.Logbook.Name: Name :: String -> Name
- Data.Aviation.Casr.Logbook.Name: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance Data.String.IsString Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Name.Name
- Data.Aviation.Casr.Logbook.Name: newtype Name
- Data.Aviation.Casr.Logbook.PiC: PiC :: String -> PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance Data.String.IsString Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: instance GHC.Show.Show Data.Aviation.Casr.Logbook.PiC.PiC
- Data.Aviation.Casr.Logbook.PiC: newtype PiC
- Data.Aviation.Casr.Logbook.PoB: PoB :: Int -> PoB
- Data.Aviation.Casr.Logbook.PoB: data PoB
- Data.Aviation.Casr.Logbook.PoB: dual :: PoB
- Data.Aviation.Casr.Logbook.PoB: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: instance GHC.Show.Show Data.Aviation.Casr.Logbook.PoB.PoB
- Data.Aviation.Casr.Logbook.PoB: solo :: PoB
- Data.Aviation.Casr.Logbook.Printer.Html: class Html s
- Data.Aviation.Casr.Logbook.Printer.Html: html :: Html s => s -> String
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html GHC.Types.Char
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html GHC.Types.Int
- Data.Aviation.Casr.Logbook.Printer.Html: instance Data.Aviation.Casr.Logbook.Printer.Html.Html a => Data.Aviation.Casr.Logbook.Printer.Html.Html [a]
- Data.Aviation.Casr.Logbook.Printer.Html: printHtml :: Html s => s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Html: writeHtmlFile :: Html s => FilePath -> s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Markdown: class Markdown s
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown GHC.Types.Char
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown GHC.Types.Int
- Data.Aviation.Casr.Logbook.Printer.Markdown: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown a => Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown [a]
- Data.Aviation.Casr.Logbook.Printer.Markdown: markdown :: Markdown s => s -> String
- Data.Aviation.Casr.Logbook.Printer.Markdown: printMarkdown :: Markdown s => s -> IO ()
- Data.Aviation.Casr.Logbook.Printer.Markdown: writeMarkdownFile :: Markdown s => FilePath -> s -> IO ()
- Data.Aviation.Casr.Logbook.Sequence: Sequence :: String -> Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance Data.String.IsString Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Sequence.Sequence
- Data.Aviation.Casr.Logbook.Sequence: newtype Sequence
- Data.Aviation.Casr.Logbook.Totals: Totals :: Hours -> Hours -> Hours -> (Map String Hours) -> (Map String Hours) -> Hours -> Hours -> Hours -> Hours -> Hours -> (Map String Hours) -> Totals
- Data.Aviation.Casr.Logbook.Totals: data Totals
- Data.Aviation.Casr.Logbook.Totals: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Totals.Totals
- Data.Aviation.Casr.Logbook.Totals: singleTotals :: FlightEntry -> Totals
- Data.Aviation.Casr.Logbook.Totals: totals :: Entries -> Totals
- Data.Aviation.Casr.Logbook.Totals: updateTotals :: FlightEntry -> Totals -> Totals
- Data.Aviation.Casr.Logbook.Totals: zeroTotals :: Totals
- Data.Aviation.Casr.Logbook.TrackLog: TrackLog :: String -> (Maybe String) -> TrackLogType -> TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: data TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLog: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLog.TrackLog
- Data.Aviation.Casr.Logbook.TrackLogType: Gpx :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: ImageLog :: ImageType -> TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: Kml :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: Kmz :: TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: data TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLogType.TrackLogType
- Data.Aviation.Casr.Logbook.TrackLogs: TrackLogs :: [TrackLog] -> TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TrackLogs.TrackLogs
- Data.Aviation.Casr.Logbook.TrackLogs: newtype TrackLogs
- Data.Aviation.Casr.Logbook.Video: Video :: String -> (Maybe String) -> VideoType -> Video
- Data.Aviation.Casr.Logbook.Video: data Video
- Data.Aviation.Casr.Logbook.Video: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.Video: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Video.Video
- Data.Aviation.Casr.Logbook.VideoType: Bambuser :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: Vimeo :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: YouTube :: VideoType
- Data.Aviation.Casr.Logbook.VideoType: data VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.VideoType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.VideoType.VideoType
- Data.Aviation.Casr.Logbook.Videos: Videos :: [Video] -> Videos
- Data.Aviation.Casr.Logbook.Videos: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Videos.Videos
- Data.Aviation.Casr.Logbook.Videos: newtype Videos
- Data.Aviation.Casr.Logbook.Visualisation: Visualisation :: String -> (Maybe String) -> VisualisationType -> Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: data Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.Visualisation: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Visualisation.Visualisation
- Data.Aviation.Casr.Logbook.VisualisationType: Doarama :: String -> VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: data VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.VisualisationType: instance GHC.Show.Show Data.Aviation.Casr.Logbook.VisualisationType.VisualisationType
- Data.Aviation.Casr.Logbook.Visualisations: Visualisations :: [Visualisation] -> Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance Data.Aviation.Casr.Logbook.Printer.Html.Html Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance Data.Aviation.Casr.Logbook.Printer.Markdown.Markdown Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Visualisations.Visualisations
- Data.Aviation.Casr.Logbook.Visualisations: newtype Visualisations
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftEngine] :: Aircraft -> Engine
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftRegistration] :: Aircraft -> String
+ Data.Aviation.Casr.Logbook.Aircraft: [_aircraftType] :: Aircraft -> String
+ Data.Aviation.Casr.Logbook.Aircraft: instance Data.Aviation.Casr.Logbook.Aircraft.HasAircraft Data.Aviation.Casr.Logbook.Aircraft.Aircraft
+ Data.Aviation.Casr.Logbook.Aircraft: multiaircraft :: String -> String -> Aircraft
+ Data.Aviation.Casr.Logbook.Aircraft: singleaircraft :: String -> String -> Aircraft
+ Data.Aviation.Casr.Logbook.AircraftFlight: AircraftFlight :: String -> Aircraft -> Command -> DayNight -> FlightPath -> [Aviator] -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_aircraftflightname] :: AircraftFlight -> String
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_command] :: AircraftFlight -> Command
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_daynight] :: AircraftFlight -> DayNight
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightaircraft] :: AircraftFlight -> Aircraft
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightothercrew] :: AircraftFlight -> [Aviator]
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_flightpath] :: AircraftFlight -> FlightPath
+ Data.Aviation.Casr.Logbook.AircraftFlight: [_instrumentflightTime] :: AircraftFlight -> TimeAmount
+ Data.Aviation.Casr.Logbook.AircraftFlight: commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: data AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> TimeAmount -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance Data.Aviation.Casr.Logbook.AircraftFlight.HasAircraftFlight Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: instance GHC.Show.Show Data.Aviation.Casr.Logbook.AircraftFlight.AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_commandonlyflight :: String -> Aircraft -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_dualonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.AircraftFlight: noif_icusonlyflight :: String -> Aircraft -> Aviator -> DayNight -> FlightPath -> AircraftFlight
+ Data.Aviation.Casr.Logbook.Aviator: Aviator :: String -> String -> [Digit] -> Maybe Day -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: [_arn] :: Aviator -> [Digit]
+ Data.Aviation.Casr.Logbook.Aviator: [_dob] :: Aviator -> Maybe Day
+ Data.Aviation.Casr.Logbook.Aviator: [_firstname] :: Aviator -> String
+ Data.Aviation.Casr.Logbook.Aviator: [_ratings] :: Aviator -> [Rating]
+ Data.Aviation.Casr.Logbook.Aviator: [_surname] :: Aviator -> String
+ Data.Aviation.Casr.Logbook.Aviator: aviatorwithname :: String -> String -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: data Aviator
+ Data.Aviation.Casr.Logbook.Aviator: dobaviator :: String -> String -> [Digit] -> Day -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance Data.Aviation.Casr.Logbook.Aviator.HasAviator Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Aviator.Aviator
+ Data.Aviation.Casr.Logbook.Aviator: nodobaviator :: String -> String -> [Digit] -> [Rating] -> Aviator
+ Data.Aviation.Casr.Logbook.Briefing: Briefing :: String -> Location -> Time -> Aviator -> TimeAmount -> Briefing
+ Data.Aviation.Casr.Logbook.Briefing: [_briefer] :: Briefing -> Aviator
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingLocation] :: Briefing -> Location
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingName] :: Briefing -> String
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingTimeAmount] :: Briefing -> TimeAmount
+ Data.Aviation.Casr.Logbook.Briefing: [_briefingTime] :: Briefing -> Time
+ Data.Aviation.Casr.Logbook.Briefing: data Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance Data.Aviation.Casr.Logbook.Briefing.HasBriefing Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Briefing: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Briefing.Briefing
+ Data.Aviation.Casr.Logbook.Command: Dual :: Aviator -> Command
+ Data.Aviation.Casr.Logbook.Command: ICUS :: Aviator -> Command
+ Data.Aviation.Casr.Logbook.Command: InCommand :: Command
+ Data.Aviation.Casr.Logbook.Command: data Command
+ Data.Aviation.Casr.Logbook.Command: instance Data.Aviation.Casr.Logbook.Command.AsCommand Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.Command: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Command.Command
+ Data.Aviation.Casr.Logbook.DayNight: [_dayDayNight] :: DayNight -> TimeAmount
+ Data.Aviation.Casr.Logbook.DayNight: [_nightDayNight] :: DayNight -> TimeAmount
+ Data.Aviation.Casr.Logbook.DayNight: day :: Int -> Digit -> DayNight
+ Data.Aviation.Casr.Logbook.DayNight: instance Data.Aviation.Casr.Logbook.DayNight.HasDayNight Data.Aviation.Casr.Logbook.DayNight.DayNight
+ Data.Aviation.Casr.Logbook.DayNight: night :: Int -> Digit -> DayNight
+ Data.Aviation.Casr.Logbook.Engine: instance Data.Aviation.Casr.Logbook.Engine.AsEngine Data.Aviation.Casr.Logbook.Engine.Engine
+ Data.Aviation.Casr.Logbook.Entries: emptyentries :: Entries ae se ee be
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Classes.Eq ae, GHC.Classes.Eq se, GHC.Classes.Eq ee, GHC.Classes.Eq be) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Classes.Ord ae, GHC.Classes.Ord se, GHC.Classes.Ord ee, GHC.Classes.Ord be) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance (GHC.Show.Show ae, GHC.Show.Show se, GHC.Show.Show ee, GHC.Show.Show be) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Entries.Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Entries: instance Control.Lens.Wrapped.Wrapped (Data.Aviation.Casr.Logbook.Entries.Entries ae0 se0 ee0 be0)
+ Data.Aviation.Casr.Logbook.Entries: instance Data.Aviation.Casr.Logbook.Entries.Entries ae0 se0 ee0 be0 ~ t0 => Control.Lens.Wrapped.Rewrapped (Data.Aviation.Casr.Logbook.Entries.Entries ae1 se1 ee1 be1) t0
+ Data.Aviation.Casr.Logbook.Entries: singleentry :: Entry ae se ee be -> Entries ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: AircraftFlightEntry :: AircraftFlight -> ae -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: BriefingEntry :: Briefing -> be -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: ExamEntry :: Exam -> ee -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: SimulatorFlightEntry :: SimulatorFlight -> se -> Entry ae se ee be
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Classes.Eq be, GHC.Classes.Eq ee, GHC.Classes.Eq se, GHC.Classes.Eq ae) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Classes.Ord be, GHC.Classes.Ord ee, GHC.Classes.Ord se, GHC.Classes.Ord ae) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance (GHC.Show.Show be, GHC.Show.Show ee, GHC.Show.Show se, GHC.Show.Show ae) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Entry.Entry ae se ee be)
+ Data.Aviation.Casr.Logbook.Entry: instance Data.Aviation.Casr.Logbook.Entry.AsEntry (Data.Aviation.Casr.Logbook.Entry.Entry ae0 se0 ee0 be0) ae0 se0 ee0 be0
+ Data.Aviation.Casr.Logbook.Exam: Exam :: String -> Location -> Time -> Aviator -> Int -> Int -> Exam
+ Data.Aviation.Casr.Logbook.Exam: [_examDelegate] :: Exam -> Aviator
+ Data.Aviation.Casr.Logbook.Exam: [_examLocation] :: Exam -> Location
+ Data.Aviation.Casr.Logbook.Exam: [_examName] :: Exam -> String
+ Data.Aviation.Casr.Logbook.Exam: [_examResultMaximum] :: Exam -> Int
+ Data.Aviation.Casr.Logbook.Exam: [_examResult] :: Exam -> Int
+ Data.Aviation.Casr.Logbook.Exam: [_examTime] :: Exam -> Time
+ Data.Aviation.Casr.Logbook.Exam: data Exam
+ Data.Aviation.Casr.Logbook.Exam: dayonlyexam :: String -> Location -> Day -> Aviator -> Int -> Int -> Exam
+ Data.Aviation.Casr.Logbook.Exam: instance Data.Aviation.Casr.Logbook.Exam.HasExam Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.Exam: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Exam.Exam
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightEnd] :: FlightPath -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightIntermediate] :: FlightPath -> [FlightPoint]
+ Data.Aviation.Casr.Logbook.FlightPath: [_flightStart] :: FlightPath -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPath: directcircuit :: FlightPoint -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: directflightpath :: FlightPoint -> FlightPoint -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: instance Data.Aviation.Casr.Logbook.FlightPath.HasFlightPath Data.Aviation.Casr.Logbook.FlightPath.FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: pointsatdate :: String -> [String] -> String -> Day -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPoint: FlightPoint :: String -> Maybe String -> Time -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: [_landingTime] :: FlightPoint -> Time
+ Data.Aviation.Casr.Logbook.FlightPoint: [_point] :: FlightPoint -> String
+ Data.Aviation.Casr.Logbook.FlightPoint: [_runway] :: FlightPoint -> Maybe String
+ Data.Aviation.Casr.Logbook.FlightPoint: data FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance Data.Aviation.Casr.Logbook.FlightPoint.HasFlightPoint Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: instance GHC.Show.Show Data.Aviation.Casr.Logbook.FlightPoint.FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: pointatdate :: String -> Day -> FlightPoint
+ Data.Aviation.Casr.Logbook.FlightPoint: runwayatdate :: String -> String -> Day -> FlightPoint
+ Data.Aviation.Casr.Logbook.Location: Location :: String -> Double -> Double -> Location
+ Data.Aviation.Casr.Logbook.Location: [_locationlatitude] :: Location -> Double
+ Data.Aviation.Casr.Logbook.Location: [_locationlongitude] :: Location -> Double
+ Data.Aviation.Casr.Logbook.Location: [_locationname] :: Location -> String
+ Data.Aviation.Casr.Logbook.Location: data Location
+ Data.Aviation.Casr.Logbook.Location: instance Data.Aviation.Casr.Logbook.Location.HasLocation Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Location: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Location.Location
+ Data.Aviation.Casr.Logbook.Logbook: Logbook :: Aviator -> (Entries ae se ee be) -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: [_logbookaviator] :: Logbook ae se ee be -> Aviator
+ Data.Aviation.Casr.Logbook.Logbook: [_logbookentries] :: Logbook ae se ee be -> (Entries ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: aviatorlogbook :: Aviator -> [Entry ae se ee be] -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: data Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: emptylogbook :: Aviator -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Classes.Eq be, GHC.Classes.Eq ee, GHC.Classes.Eq se, GHC.Classes.Eq ae) => GHC.Classes.Eq (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Classes.Ord be, GHC.Classes.Ord ee, GHC.Classes.Ord se, GHC.Classes.Ord ae) => GHC.Classes.Ord (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance (GHC.Show.Show be, GHC.Show.Show ee, GHC.Show.Show se, GHC.Show.Show ae) => GHC.Show.Show (Data.Aviation.Casr.Logbook.Logbook.Logbook ae se ee be)
+ Data.Aviation.Casr.Logbook.Logbook: instance Data.Aviation.Casr.Logbook.Logbook.HasLogbook (Data.Aviation.Casr.Logbook.Logbook.Logbook ae0 se0 ee0 be0) ae0 se0 ee0 be0
+ Data.Aviation.Casr.Logbook.Logbook: singleentrylogbook :: Aviator -> Entry ae se ee be -> Logbook ae se ee be
+ Data.Aviation.Casr.Logbook.Rating: Rating :: String -> Maybe Day -> Rating
+ Data.Aviation.Casr.Logbook.Rating: [_ratingAchieved] :: Rating -> Maybe Day
+ Data.Aviation.Casr.Logbook.Rating: [_ratingName] :: Rating -> String
+ Data.Aviation.Casr.Logbook.Rating: data Rating
+ Data.Aviation.Casr.Logbook.Rating: dayrating :: String -> Day -> Rating
+ Data.Aviation.Casr.Logbook.Rating: instance Data.Aviation.Casr.Logbook.Rating.HasRating Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Rating.Rating
+ Data.Aviation.Casr.Logbook.Rating: nodayrating :: String -> Rating
+ Data.Aviation.Casr.Logbook.SimulatorFlight: SimulatorFlight :: String -> Time -> String -> [Aviator] -> TimeAmount -> SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_instrumentsimulatorTimeAmount] :: SimulatorFlight -> TimeAmount
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorflightname] :: SimulatorFlight -> String
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorflighttime] :: SimulatorFlight -> Time
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatorothercrew] :: SimulatorFlight -> [Aviator]
+ Data.Aviation.Casr.Logbook.SimulatorFlight: [_simulatortype] :: SimulatorFlight -> String
+ Data.Aviation.Casr.Logbook.SimulatorFlight: data SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: dayonlysimulator :: String -> Day -> String -> [Aviator] -> TimeAmount -> SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance Data.Aviation.Casr.Logbook.SimulatorFlight.HasSimulatorFlight Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.SimulatorFlight: instance GHC.Show.Show Data.Aviation.Casr.Logbook.SimulatorFlight.SimulatorFlight
+ Data.Aviation.Casr.Logbook.Time: Time :: Day -> Maybe TimeOfDay -> Time
+ Data.Aviation.Casr.Logbook.Time: [_day] :: Time -> Day
+ Data.Aviation.Casr.Logbook.Time: [_timeofday] :: Time -> Maybe TimeOfDay
+ Data.Aviation.Casr.Logbook.Time: data Time
+ Data.Aviation.Casr.Logbook.Time: dayandtime :: Day -> TimeOfDay -> Time
+ Data.Aviation.Casr.Logbook.Time: dayonly :: Day -> Time
+ Data.Aviation.Casr.Logbook.Time: instance Data.Aviation.Casr.Logbook.Time.HasTime Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.Time: instance GHC.Show.Show Data.Aviation.Casr.Logbook.Time.Time
+ Data.Aviation.Casr.Logbook.TimeAmount: TimeAmount :: Int -> Digit -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: [_hours] :: TimeAmount -> Int
+ Data.Aviation.Casr.Logbook.TimeAmount: [_tenthofhour] :: TimeAmount -> Digit
+ Data.Aviation.Casr.Logbook.TimeAmount: addtimeamount :: TimeAmount -> TimeAmount -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: data TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance Data.Aviation.Casr.Logbook.TimeAmount.HasTimeAmount Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Base.Monoid Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Classes.Eq Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Classes.Ord Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: instance GHC.Show.Show Data.Aviation.Casr.Logbook.TimeAmount.TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: parttimeamount :: Digit -> TimeAmount
+ Data.Aviation.Casr.Logbook.TimeAmount: zerotimeamount :: TimeAmount
- Data.Aviation.Casr.Logbook.DayNight: DayNight :: DayNight
+ Data.Aviation.Casr.Logbook.DayNight: DayNight :: TimeAmount -> TimeAmount -> DayNight
- Data.Aviation.Casr.Logbook.Entries: Entries :: [Entry] -> Entries
+ Data.Aviation.Casr.Logbook.Entries: Entries :: [Entry ae se ee be] -> Entries ae se ee be
- Data.Aviation.Casr.Logbook.Entries: newtype Entries
+ Data.Aviation.Casr.Logbook.Entries: newtype Entries ae se ee be
- Data.Aviation.Casr.Logbook.Entry: data Entry
+ Data.Aviation.Casr.Logbook.Entry: data Entry ae se ee be
- Data.Aviation.Casr.Logbook.FlightPath: FlightPath :: String -> [String] -> String -> FlightPath
+ Data.Aviation.Casr.Logbook.FlightPath: FlightPath :: FlightPoint -> [FlightPoint] -> FlightPoint -> FlightPath

Files

casr-logbook.cabal view
@@ -1,5 +1,5 @@ name:               casr-logbook-version:            0.0.12+version:            0.1.0 license:            OtherLicense license-file:       LICENSE author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>@@ -34,47 +34,39 @@   build-depends:                     base < 5 && >= 4.8                     , containers < 0.6 && >= 0.4+                    , digit < 3 && >= 0.2.8+                    , time < 2 && >= 1.5+                    , lens < 5 && >= 4                        ghc-options:                     -Wall +  default-extensions:+                    NoImplicitPrelude+   hs-source-dirs:                     src    exposed-modules:                     Data.Aviation.Casr.Logbook+                    Data.Aviation.Casr.Logbook.Rating+                    Data.Aviation.Casr.Logbook.Aviator+                    Data.Aviation.Casr.Logbook.Engine                     Data.Aviation.Casr.Logbook.Aircraft-                    Data.Aviation.Casr.Logbook.ARN-                    Data.Aviation.Casr.Logbook.Date+                    Data.Aviation.Casr.Logbook.TimeAmount                     Data.Aviation.Casr.Logbook.DayNight-                    Data.Aviation.Casr.Logbook.DOB-                    Data.Aviation.Casr.Logbook.Engine-                    Data.Aviation.Casr.Logbook.Entries-                    Data.Aviation.Casr.Logbook.Entry-                    Data.Aviation.Casr.Logbook.ExamEntry-                    Data.Aviation.Casr.Logbook.FlightEntry+                    Data.Aviation.Casr.Logbook.Location+                    Data.Aviation.Casr.Logbook.Command+                    Data.Aviation.Casr.Logbook.Time+                    Data.Aviation.Casr.Logbook.FlightPoint                     Data.Aviation.Casr.Logbook.FlightPath-                    Data.Aviation.Casr.Logbook.Hours-                    Data.Aviation.Casr.Logbook.Image-                    Data.Aviation.Casr.Logbook.Images-                    Data.Aviation.Casr.Logbook.ImageType-                    Data.Aviation.Casr.Logbook.Log-                    Data.Aviation.Casr.Logbook.Printer.Markdown-                    Data.Aviation.Casr.Logbook.Printer.Html-                    Data.Aviation.Casr.Logbook.Name-                    Data.Aviation.Casr.Logbook.PiC-                    Data.Aviation.Casr.Logbook.PoB-                    Data.Aviation.Casr.Logbook.Sequence-                    Data.Aviation.Casr.Logbook.Totals-                    Data.Aviation.Casr.Logbook.TrackLog-                    Data.Aviation.Casr.Logbook.TrackLogs-                    Data.Aviation.Casr.Logbook.TrackLogType-                    Data.Aviation.Casr.Logbook.Video-                    Data.Aviation.Casr.Logbook.Videos-                    Data.Aviation.Casr.Logbook.VideoType-                    Data.Aviation.Casr.Logbook.Visualisation-                    Data.Aviation.Casr.Logbook.Visualisations-                    Data.Aviation.Casr.Logbook.VisualisationType+                    Data.Aviation.Casr.Logbook.AircraftFlight+                    Data.Aviation.Casr.Logbook.SimulatorFlight+                    Data.Aviation.Casr.Logbook.Exam+                    Data.Aviation.Casr.Logbook.Briefing+                    Data.Aviation.Casr.Logbook.Entry+                    Data.Aviation.Casr.Logbook.Entries+                    Data.Aviation.Casr.Logbook.Logbook  test-suite doctests   type:
changelog view
@@ -1,3 +1,7 @@+0.1.0++* More structure to a logbook.+ 0.0.12  * Fix exam output for HTML.
src/Data/Aviation/Casr/Logbook.hs view
@@ -2,34 +2,21 @@   module L ) where +import Data.Aviation.Casr.Logbook.Logbook as L+import Data.Aviation.Casr.Logbook.Rating as L+import Data.Aviation.Casr.Logbook.Aviator as L+import Data.Aviation.Casr.Logbook.Engine as L import Data.Aviation.Casr.Logbook.Aircraft as L-import Data.Aviation.Casr.Logbook.ARN as L-import Data.Aviation.Casr.Logbook.Date as L+import Data.Aviation.Casr.Logbook.TimeAmount as L import Data.Aviation.Casr.Logbook.DayNight as L-import Data.Aviation.Casr.Logbook.DOB as L-import Data.Aviation.Casr.Logbook.Engine as L-import Data.Aviation.Casr.Logbook.Entries as L-import Data.Aviation.Casr.Logbook.Entry as L-import Data.Aviation.Casr.Logbook.ExamEntry as L+import Data.Aviation.Casr.Logbook.Location as L+import Data.Aviation.Casr.Logbook.Command as L+import Data.Aviation.Casr.Logbook.Time as L+import Data.Aviation.Casr.Logbook.FlightPoint as L import Data.Aviation.Casr.Logbook.FlightPath as L-import Data.Aviation.Casr.Logbook.Hours as L-import Data.Aviation.Casr.Logbook.Image as L-import Data.Aviation.Casr.Logbook.Images as L-import Data.Aviation.Casr.Logbook.ImageType as L-import Data.Aviation.Casr.Logbook.Log as L-import Data.Aviation.Casr.Logbook.Printer.Html as L-import Data.Aviation.Casr.Logbook.Printer.Markdown as L-import Data.Aviation.Casr.Logbook.Name as L-import Data.Aviation.Casr.Logbook.PiC as L-import Data.Aviation.Casr.Logbook.PoB as L-import Data.Aviation.Casr.Logbook.Sequence as L-import Data.Aviation.Casr.Logbook.Totals as L-import Data.Aviation.Casr.Logbook.TrackLog as L-import Data.Aviation.Casr.Logbook.TrackLogs as L-import Data.Aviation.Casr.Logbook.TrackLogType as L-import Data.Aviation.Casr.Logbook.Video as L-import Data.Aviation.Casr.Logbook.Videos as L-import Data.Aviation.Casr.Logbook.VideoType as L-import Data.Aviation.Casr.Logbook.Visualisation as L-import Data.Aviation.Casr.Logbook.Visualisations as L-import Data.Aviation.Casr.Logbook.VisualisationType as L+import Data.Aviation.Casr.Logbook.AircraftFlight as L+import Data.Aviation.Casr.Logbook.SimulatorFlight as L+import Data.Aviation.Casr.Logbook.Exam as L+import Data.Aviation.Casr.Logbook.Briefing as L+import Data.Aviation.Casr.Logbook.Entry as L+import Data.Aviation.Casr.Logbook.Entries as L
− src/Data/Aviation/Casr/Logbook/ARN.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.ARN (-  ARN(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype ARN =-  ARN-    String-  deriving (Eq, Ord, Show)--instance IsString ARN where-  fromString =-    ARN-    -instance Markdown ARN where-  markdown (ARN s) =-    "* Aviation Reference Number: **`" ++ markdown s ++ "`**\n"--instance Html ARN where-  html (ARN s) =-    "<span class=\"heading arnheading\">ARN: </span><span class=\"arninfo\">" ++ html s ++ "</span>"
src/Data/Aviation/Casr/Logbook/Aircraft.hs view
@@ -1,69 +1,44 @@-module Data.Aviation.Casr.Logbook.Aircraft (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Aircraft(   Aircraft(..)+, singleaircraft+, multiaircraft ) where -import Data.Aviation.Casr.Logbook.Engine-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Engine(Engine(Single, Multi))+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show)  data Aircraft =-  Aircraft-    String -- type-    String -- registration-    Engine-  deriving (Eq, Ord, Show)+  Aircraft {+    _aircraftType :: String+  , _aircraftRegistration :: String+  , _aircraftEngine :: Engine+  } deriving (Eq, Ord, Show) -instance Markdown Aircraft where-  markdown (Aircraft t r e) =-    concat-      [-        "* Aircraft"-      , "\n  * Type: **"-      , markdown t-      , "**\n  * Registration: **`"-      , markdown r-      , "`**\n  * Engine: **`"-      , markdown e-      , "`**\n"-      ]+makeClassy ''Aircraft -instance Html Aircraft where-  html (Aircraft t r e) =-    concat-      [-        "<span class=\"heading aircraftheading\">"-      , "Aircraft"-      , "</span>"-      , ": "-      , "<div class=\"info aircraftinfo\">"-      , "<ul>"-      , "<li>"-      , "<span class=\"heading aircrafttypeheading\">"-      , "Type"-      , "</span>"-      , ": "-      , "<span class=\"info aircrafttypeinfo\">"-      , html t-      , "</span>"-      , "</li>"-      , "<li>"-      , "<span class=\"heading aircraftregistrationheading\">"-      , "Registration"-      , "</span>"-      , ": "-      , "<span class=\"info aircraftregistrationinfo\">"-      , html r-      , "</span>"-      , "</li>"-      , "<li>"-      , "<span class=\"heading aircraftengineheading\">"-      , "Engine"-      , "</span>"-      , ": "-      , "<span class=\"info aircraftengineinfo\">"-      , html e-      , "</span>"-      , "</li>"-      , "</ul>"-      , "</div>"-      ]+singleaircraft ::+  String+  -> String+  -> Aircraft+singleaircraft t r =+  Aircraft+    t+    r+    Single++multiaircraft ::+  String+  -> String+  -> Aircraft+multiaircraft t r =+  Aircraft+    t+    r+    Multi
+ src/Data/Aviation/Casr/Logbook/AircraftFlight.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.AircraftFlight(+  AircraftFlight(..)+, icusonlyflight+, noif_icusonlyflight+, dualonlyflight+, noif_dualonlyflight+, commandonlyflight+, noif_commandonlyflight+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aircraft(Aircraft)+import Data.Aviation.Casr.Logbook.Command(Command(ICUS, Dual, InCommand))+import Data.Aviation.Casr.Logbook.DayNight(DayNight)+import Data.Aviation.Casr.Logbook.FlightPath(FlightPath)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount, zerotimeamount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show)++data AircraftFlight =+  AircraftFlight {+    _aircraftflightname :: String+  , _flightaircraft :: Aircraft+  , _command :: Command+  , _daynight :: DayNight+  , _flightpath :: FlightPath+  , _flightothercrew :: [Aviator]+  , _instrumentflightTime :: TimeAmount+  } deriving (Eq, Ord, Show)++makeClassy ''AircraftFlight++icusonlyflight ::+  String+  -> Aircraft+  -> Aviator+  -> DayNight+  -> FlightPath+  -> TimeAmount+  -> AircraftFlight+icusonlyflight n a v t p i =+  AircraftFlight+    n+    a+    (ICUS v)+    t+    p+    []+    i++noif_icusonlyflight ::+  String+  -> Aircraft+  -> Aviator+  -> DayNight+  -> FlightPath+  -> AircraftFlight+noif_icusonlyflight n a v t p =+  icusonlyflight+    n+    a+    v+    t+    p+    zerotimeamount++dualonlyflight ::+  String+  -> Aircraft+  -> Aviator+  -> DayNight+  -> FlightPath+  -> TimeAmount+  -> AircraftFlight+dualonlyflight n a v t p i =+  AircraftFlight+    n+    a+    (Dual v)+    t+    p+    []+    i++noif_dualonlyflight ::+  String+  -> Aircraft+  -> Aviator+  -> DayNight+  -> FlightPath+  -> AircraftFlight+noif_dualonlyflight n a v t p =+  dualonlyflight+    n+    a+    v+    t+    p+    zerotimeamount++commandonlyflight ::+  String+  -> Aircraft+  -> DayNight+  -> FlightPath+  -> TimeAmount+  -> AircraftFlight+commandonlyflight n a t p i =+  AircraftFlight+    n+    a+    InCommand+    t+    p+    []+    i++noif_commandonlyflight ::+  String+  -> Aircraft+  -> DayNight+  -> FlightPath+  -> AircraftFlight+noif_commandonlyflight n a t p =+  commandonlyflight+    n+    a+    t+    p+    zerotimeamount
+ src/Data/Aviation/Casr/Logbook/Aviator.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Aviator(+  Aviator(..)+, aviatorwithname+, nodobaviator+, dobaviator+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Rating(Rating)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.Digit(Digit)+import Data.Maybe(Maybe(Nothing, Just))+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Aviator =+  Aviator {+    _surname :: String+  , _firstname :: String+  , _arn :: [Digit]+  , _dob :: Maybe Day+  , _ratings :: [Rating]+  } deriving (Eq, Ord, Show)++makeClassy ''Aviator++aviatorwithname ::+  String+  -> String+  -> Aviator+aviatorwithname s f =+  Aviator+    s+    f+    []+    Nothing+    []++nodobaviator ::+  String+  -> String+  -> [Digit]+  -> [Rating]+  -> Aviator+nodobaviator s f r =+  Aviator+    s +    f+    r+    Nothing++dobaviator ::+  String+  -> String+  -> [Digit]+  -> Day+  -> [Rating]+  -> Aviator+dobaviator s f r b =+  Aviator+    s +    f+    r+    (Just b)
+ src/Data/Aviation/Casr/Logbook/Briefing.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Briefing(+  Briefing(..)+) where+  +import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Location(Location)+import Data.Aviation.Casr.Logbook.Time(Time)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show)++data Briefing =+  Briefing {+    _briefingName :: String+  , _briefingLocation :: Location+  , _briefingTime :: Time+  , _briefer :: Aviator+  , _briefingTimeAmount :: TimeAmount+  } deriving (Eq, Ord, Show)++makeClassy ''Briefing
+ src/Data/Aviation/Casr/Logbook/Command.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Command(+  Command(..)+) where++import Control.Lens(makeClassyPrisms)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)++data Command =+  ICUS Aviator+  | Dual Aviator+  | InCommand+  deriving (Eq, Ord, Show)++makeClassyPrisms ''Command
− src/Data/Aviation/Casr/Logbook/DOB.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.DOB (-  DOB(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype DOB =-  DOB-    String-  deriving (Eq, Ord, Show)--instance IsString DOB where-  fromString =-    DOB--instance Markdown DOB where-  markdown (DOB s) =-    "* Date of Birth: **`" ++ markdown s ++ "`**\n"--instance Html DOB where-  html (DOB s) =-    "<span class=\"heading dobheading\">Date of Birth: </span><span class=\"dobinfo\">" ++ html s ++ "</span>"
− src/Data/Aviation/Casr/Logbook/Date.hs
@@ -1,33 +0,0 @@-module Data.Aviation.Casr.Logbook.Date (-  Date(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String-    -newtype Date =-  Date-    String-  deriving (Eq, Ord, Show)--instance IsString Date where-  fromString =-    Date-    -instance Markdown Date where-  markdown (Date s) =-    "* Date: **`" ++ s ++ "`**\n"--instance Html Date where-  html (Date s) =-    concat-      [-        "<span class=\"heading dateheading\">"-      , "Date"-      , "</span>"-      , ": "-      , "<span class=\"info dateinfo\">"-      , html s-      , "</span>"-      ]
src/Data/Aviation/Casr/Logbook/DayNight.hs view
@@ -1,40 +1,38 @@-module Data.Aviation.Casr.Logbook.DayNight (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.DayNight(   DayNight(..)+, day+, night ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount(TimeAmount), zerotimeamount)+import Data.Digit(Digit)+import Data.Eq(Eq)+import Data.Int(Int)+import Data.Ord(Ord)+import Prelude(Show)  data DayNight =-  Day-  | Night-  | DayNight-  deriving (Eq, Ord, Show)-    -instance Markdown DayNight where-  markdown x =-    concat-      [-        "* Day/Night: **"-      , case x of-          Day -> "Day"-          Night -> "Night"-          DayNight -> "Day & Night"-      , "**\n"-      ]-    -instance Html DayNight where-  html x =-    concat-      [-        "<span class=\"heading daynightheading\">"-      , "Day/Night"-      , "</span>"-      , ": "-      , "<span class=\"info daynightinfo\">"-      , case x of-          Day -> "Day"-          Night -> "Night"-          DayNight -> "Day &amp; Night"-      , "</span>"-      ]+  DayNight {+    _dayDayNight :: TimeAmount+  , _nightDayNight :: TimeAmount+  } deriving (Eq, Ord, Show)++makeClassy ''DayNight++day ::+  Int+  -> Digit+  -> DayNight+day h p =+  DayNight (TimeAmount h p) zerotimeamount++night ::+  Int+  -> Digit+  -> DayNight+night h p =+  DayNight zerotimeamount (TimeAmount h p)
src/Data/Aviation/Casr/Logbook/Engine.hs view
@@ -1,23 +1,18 @@-module Data.Aviation.Casr.Logbook.Engine (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Engine(   Engine(..) ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html+import Control.Lens(makeClassyPrisms)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)  data Engine =   Single   | Multi   deriving (Eq, Ord, Show)-    -instance Markdown Engine where-  markdown Single =-    "single"-  markdown Multi =-    "multi" -instance Html Engine where-  html Single =-    "single"-  html Multi =-    "multi"+makeClassyPrisms ''Engine
src/Data/Aviation/Casr/Logbook/Entries.hs view
@@ -1,87 +1,35 @@-module Data.Aviation.Casr.Logbook.Entries (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeFamilies #-}++module Data.Aviation.Casr.Logbook.Entries(   Entries(..)-, flightEntries+, emptyentries+, singleentry ) where -import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.Entry-import Data.Aviation.Casr.Logbook.ExamEntry-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.List--newtype Entries =+import Control.Lens(makeWrapped)+import Data.Aviation.Casr.Logbook.Entry(Entry)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)+  +newtype Entries ae se ee be =   Entries-    [Entry]+    [Entry ae se ee be]   deriving (Eq, Ord, Show) -instance Monoid Entries where-  mempty =-    Entries []-  Entries e1 `mappend` Entries e2 =-    Entries (e1 `mappend` e2)+makeWrapped ''Entries -instance Markdown Entries where-  markdown (Entries g) =-    intercalate "\n\n----\n\n" (fmap markdown g)+emptyentries ::+  Entries ae se ee be+emptyentries =+  Entries [] -instance Html Entries where-  html (Entries g) =-    (\(i, h) -> let nospace =-                      map (\c -> case c of-                                   ' ' ->-                                     '_'-                                   _ ->-                                     c)-                    divid =-                      case h of-                        EntryFlight (FlightEntry _ (Date d) (Aircraft _ reg _) _ _ _ _ _ _ _ _ _) ->-                          concat-                            [-                              nospace d-                            , "_"-                            , nospace reg-                            , "_"-                            , show (i :: Int)-                            ]-                        EntryExam (ExamEntry (Date d) n _ _ _ _ _) ->-                            concat-                              [-                                nospace d-                              , "_"-                              , nospace n-                              ]-                    divclass =-                      case h of-                        EntryFlight _ ->-                          "flightlogentry"-                        EntryExam _ ->-                          "examentry"-                in  concat-                      [-                        "<div id=\""-                      , divid-                      , "\" class=\""-                      , divclass-                      , "\">"-                      , "<div class=\"hreflink\">"-                      , "<a href=\"#"-                      , divid-                      , "\">"-                      , "§"-                      , "</a>"-                      , "</div>"-                      , html h-                      , "</div>"-                      , "<hr>"-                      ]-                      ) =<< zip [0..] g-    -flightEntries ::- Entries- -> [FlightEntry]-flightEntries (Entries e) =-  foldr (\x z -> case x of EntryFlight f -> f:z-                           EntryExam _ -> z) [] e+singleentry ::+  Entry ae se ee be+  -> Entries ae se ee be+singleentry e =+  Entries [e]
src/Data/Aviation/Casr/Logbook/Entry.hs view
@@ -1,69 +1,27 @@-module Data.Aviation.Casr.Logbook.Entry (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}++module Data.Aviation.Casr.Logbook.Entry(   Entry(..)-, flight-, exam ) where -import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.ExamEntry-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.FlightPath-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.Images-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Sequence-import Data.Aviation.Casr.Logbook.TrackLogs-import Data.Aviation.Casr.Logbook.Videos-import Data.Aviation.Casr.Logbook.Visualisations+import Control.Lens(makeClassyPrisms)+import Data.Aviation.Casr.Logbook.AircraftFlight(AircraftFlight)+import Data.Aviation.Casr.Logbook.SimulatorFlight(SimulatorFlight)+import Data.Aviation.Casr.Logbook.Exam(Exam)+import Data.Aviation.Casr.Logbook.Briefing(Briefing)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show) -data Entry =-  EntryExam ExamEntry-  | EntryFlight FlightEntry+data Entry ae se ee be =+  AircraftFlightEntry AircraftFlight ae+  | SimulatorFlightEntry SimulatorFlight se+  | ExamEntry Exam ee+  | BriefingEntry Briefing be   deriving (Eq, Ord, Show) -instance Markdown Entry where-  markdown (EntryExam e) =-    markdown e-  markdown (EntryFlight f) =-    markdown f--instance Html Entry where-  html (EntryExam e) =-    html e-  html (EntryFlight f) =-    html f--flight ::-  Sequence-  -> Date-  -> Aircraft-  -> Hours-  -> PoB-  -> FlightPath-  -> DayNight-  -> PiC-  -> TrackLogs-  -> Visualisations-  -> Images-  -> Videos-  -> Entry-flight sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos =-  EntryFlight (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos)--exam ::-  Date-  -> String-  -> String-  -> String-  -> ARN-  -> Int-  -> Int-  -> Entry-exam d n dn dr da r m =-  EntryExam (ExamEntry d n dn dr da r m)+makeClassyPrisms ''Entry
+ src/Data/Aviation/Casr/Logbook/Exam.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Exam(+  Exam(..)+, dayonlyexam+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Aviation.Casr.Logbook.Location(Location)+import Data.Eq(Eq)+import Data.Int(Int)+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Exam =+  Exam {+    _examName :: String+  , _examLocation :: Location+  , _examTime :: Time+  , _examDelegate :: Aviator+  , _examResult :: Int+  , _examResultMaximum :: Int+  } deriving (Eq, Ord, Show)  ++makeClassy ''Exam++dayonlyexam ::+  String+  -> Location+  -> Day+  -> Aviator+  -> Int+  -> Int+  -> Exam+dayonlyexam n l d =+  Exam+    n+    l+    (dayonly d)
− src/Data/Aviation/Casr/Logbook/ExamEntry.hs
@@ -1,85 +0,0 @@-module Data.Aviation.Casr.Logbook.ExamEntry (-  ExamEntry(..)-) where--import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data ExamEntry =-  ExamEntry-    Date-    String -- name-    String -- delegate name-    String -- delegate rating-    ARN -- delegate ARN-    Int -- result-    Int -- maximum possible result-  deriving (Eq, Ord, Show)--instance Markdown ExamEntry where-  markdown (ExamEntry d n dn dr da r m) =-    concat [-      markdown d-    , "* Exam: **"-    , markdown n-    , "**\n"-    , "* Delegate Name: **"-    , markdown dn-    , " ("-    , markdown dr-    , ")**\n"-    , markdown da-    , "* Result: **`"-    , markdown r-    , "/"-    , markdown m-    , "`**"-    ]--instance Html ExamEntry where-  html (ExamEntry date n dn dr da r m) =-    concat-      [-        "<div class=\"examlog\">"-      , "<h3 class=\"exam\">"-      , html n-      , "</h3>"-      , "</div>"-      , "<ul>"-      , "<li class=\"date\">"-      , html date-      , "</li>"-      , concat-        [-          "<span class=\"heading delegateheading\">"-        , "Delegate"-        , "</span>"-        , ": "-        , "<span class=\"info delegateinfo\">"-        , html dn-        , " ("-        , html dr-        , ")"-        , "</span>"-        ]-      , "</li>"      -      , "<li class=\"delegatearn\">"-      , html da-      , "<li class=\"examresult\">"-      , concat-        [-          "<span class=\"heading resultheading\">"-        , "Result"-        , "</span>"-        , ": "-        , "<span class=\"info resultinfo\">"-        , html r-        , "/"-        , html m-        , "</span>"-        ]-      , "</li>"-      , "</ul>"-      ]
− src/Data/Aviation/Casr/Logbook/FlightEntry.hs
@@ -1,114 +0,0 @@-module Data.Aviation.Casr.Logbook.FlightEntry (-  FlightEntry(..)-) where--import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.Date-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.FlightPath-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.Images-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Sequence-import Data.Aviation.Casr.Logbook.TrackLogs-import Data.Aviation.Casr.Logbook.Videos-import Data.Aviation.Casr.Logbook.Visualisations--{---This data structure currently only handles Day VFR. More modifications are-likely to result in a complete flight log entry structure.---}-data FlightEntry =-  FlightEntry-    Sequence-    Date -    Aircraft-    Hours-    PoB-    FlightPath-    DayNight-    PiC-    TrackLogs-    Visualisations-    Images-    Videos-  deriving (Eq, Ord, Show)-    -instance Markdown FlightEntry where-  markdown (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos) =-    concat-      [-        markdown date-      , markdown sequ-      , markdown aircraft-      , markdown hours-      , markdown pob-      , markdown flightpath-      , markdown daynight-      , markdown pic-      , markdown tracklogs-      , markdown videos-      , markdown visualisations-      , markdown images-      ]--instance Html FlightEntry where-  html (FlightEntry sequ date aircraft hours pob flightpath daynight pic tracklogs visualisations images videos) =-    let onethen x c r = concat $-                 case r of-                   [] ->-                     []-                   _ ->-                     [-                       "<"-                     , x-                     , " class=\""-                     , c-                     , "\">"-                     , r -                     , "</"-                     , x-                     , ">"-                     ]-        li = onethen "li"-        div' = onethen "div"             -    in  concat-          [-            "<div class=\"flightlogsequence\">"-          , "<h3 class=\"sequence\">"-          , html sequ-          , "</h3>"-          , "</div>"-          , "<ul>"-          , "<li class=\"date\">"-          , html date-          , "</li>"-          , "<li class=\"aircraft\">"-          , html aircraft-          , "</li>"-          , "<li class=\"hours\">"-          , html hours-          , "</li>"-          , "<li class=\"pob\">"-          , html pob-          , "</li>"-          , "<li class=\"flightpath\">"-          , html flightpath-          , "</li>"-          , "<li class=\"daynight\">"-          , html daynight-          , "</li>"-          , "<li class=\"pic\">"-          , html pic-          , "</li>"-          , li "tracklogs" (html tracklogs)-          , li "videos" (html videos) -          , li "visualisations" (html visualisations) -          , "</ul>"-          , div' "images" (html images) -          ]
src/Data/Aviation/Casr/Logbook/FlightPath.hs view
@@ -1,54 +1,52 @@-module Data.Aviation.Casr.Logbook.FlightPath (+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.FlightPath(   FlightPath(..)-, pathlist-, directPath+, directflightpath+, directcircuit+, pointsatdate ) where -import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.List+import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.FlightPoint(FlightPoint, pointatdate)+import Data.Eq(Eq)+import Data.Functor((<$>))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)  data FlightPath =-  FlightPath-    String -- start-    [String] -- touch-downs-    String -- end-  deriving (Eq, Ord, Show)+  FlightPath {+    _flightStart :: FlightPoint+  , _flightIntermediate :: [FlightPoint]+  , _flightEnd :: FlightPoint+  } deriving (Eq, Ord, Show) -directPath ::+makeClassy ''FlightPath++directflightpath ::+  FlightPoint+  -> FlightPoint+  -> FlightPath+directflightpath x y =+  FlightPath x [] y++directcircuit ::+  FlightPoint+  -> FlightPath+directcircuit x =+  directflightpath x x++pointsatdate ::   String+  -> [String]   -> String+  -> Day   -> FlightPath-directPath fr to =-  FlightPath-    fr-    []-    to--pathlist ::+pointsatdate x i y d =   FlightPath-  -> [String]-pathlist (FlightPath s x e) =-  s : (x ++ [e])--instance Markdown FlightPath where-  markdown p =-    concat-      [-        "* Flight path: **"-      , intercalate " - " (map markdown (pathlist p))-      , "**\n"-      ]--instance Html FlightPath where-  html p =-    concat-      [-        "<span class=\"heading flightpathheading\">"-      , "Flight path"-      , "</span>"-      , ": "-      , "<span class=\"info flightpathinfo\">"-      , intercalate " &mdash; " (map html (pathlist p))-      , "</span>"-      ]+    (pointatdate x d)+    ((\s -> pointatdate s d) <$> i)+    (pointatdate y d)
+ src/Data/Aviation/Casr/Logbook/FlightPoint.hs view
@@ -0,0 +1,47 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.FlightPoint(+  FlightPoint(..)+, pointatdate+, runwayatdate+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Eq(Eq)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data FlightPoint =+  FlightPoint {+    _point :: String+  , _runway :: Maybe String+  , _landingTime :: Time+  } deriving (Eq, Ord, Show)++makeClassy ''FlightPoint++pointatdate ::+  String+  -> Day+  -> FlightPoint+pointatdate a d =+  FlightPoint+    a+    Nothing+    (dayonly d)++runwayatdate ::+  String+  -> String+  -> Day+  -> FlightPoint+runwayatdate a r d =+  FlightPoint+    a+    (Just r)+    (dayonly d)
− src/Data/Aviation/Casr/Logbook/Hours.hs
@@ -1,61 +0,0 @@-module Data.Aviation.Casr.Logbook.Hours (-  Hours(..)-, zeroHours-, addHours-, fractionalHours-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html---- abstract-data Hours =-  Hours-    Int -- full-    Int  -- partial-  deriving (Eq, Ord, Show)--zeroHours ::-  Hours-zeroHours =-  Hours 0 0--addHours ::-  Hours -  -> Hours-  -> Hours-Hours f1 p1 `addHours` Hours f2 p2 =-  let (h, q) = divMod (p1 + p2) 10-  in  Hours (f1 + f2 + h) q --instance Monoid Hours where-  mempty =-    zeroHours-  mappend =-    addHours--instance Markdown Hours where-  markdown (Hours t p) =-    "* Hours: **`" ++ markdown t ++ "." ++ markdown p ++ "`**\n"--instance Html Hours where-  html (Hours t p) =-    concat-      [-        "<span class=\"heading hoursheading\">"-      , "Hours"-      , "</span>"-      , ": "-      , "<span class=\"info hoursinfo\">"-      , html t-      , "."-      , html p-      , "</span>"-      ]-      -fractionalHours ::-  Fractional a =>-  Hours-  -> a-fractionalHours (Hours f p) =-  fromIntegral f + (fromIntegral p / 10)
− src/Data/Aviation/Casr/Logbook/Image.hs
@@ -1,45 +0,0 @@-module Data.Aviation.Casr.Logbook.Image (-  Image(..)  -) where--import Data.Aviation.Casr.Logbook.ImageType-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Maybe--data Image =-  Image-    String -- uri-    (Maybe String) -- name-    ImageType-  deriving (Eq, Ord, Show)--instance Markdown Image where-  markdown (Image uri name itype) =-    let t = markdown itype-        n = fromMaybe ("Image (" ++ t ++ ")") name-    in  concat-          [-            "<a href=\""-          , uri-          , "\"><img src=\""-          , uri-          , "\" width=\"120\" alt=\""-          , n-          , "\"></a>"-          ]--instance Html Image where-  html (Image uri name itype) =-    let t = html itype-        n = fromMaybe ("Image (" ++ t ++ ")") name-    in  concat-          [-            "<a href=\""-          , uri-          , "\"><img src=\""-          , uri-          , "\" width=\"120\" alt=\""-          , n-          , "\"></a>"-          ]
− src/Data/Aviation/Casr/Logbook/ImageType.hs
@@ -1,23 +0,0 @@-module Data.Aviation.Casr.Logbook.ImageType (-  ImageType(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data ImageType =-  Png-  | Jpg-  deriving (Eq, Ord, Show)--instance Markdown ImageType where-  markdown Png =-    "png"-  markdown Jpg =-    "jpg"--instance Html ImageType where-  html Png =-    "png"-  html Jpg =-    "jpg"
− src/Data/Aviation/Casr/Logbook/Images.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.Images (-  Images(..)-) where--import Data.Aviation.Casr.Logbook.Image-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown--newtype Images =-  Images-    [Image]-  deriving (Eq, Ord, Show)-    -instance Monoid Images where-  mempty =-    Images []-  Images i1 `mappend` Images i2 =-    Images (i1 `mappend` i2)--instance Markdown Images where-  markdown (Images i) =-    case i of-      [] ->-        []        -      _ ->-        "\n<div style=\"text-align: justify\">\n" ++ (i >>= \j -> markdown j ++ "\n") ++ "</div>"--instance Html Images where-  html (Images i) =-    case i of-      [] ->-        []        -      _ ->-        "<div style=\"text-align: justify\">" ++ (i >>= html) ++ "</div>"
+ src/Data/Aviation/Casr/Logbook/Location.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Location(+  Location(..)+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Prelude(Show, Double)++data Location =+  Location {+    _locationname :: String+  , _locationlatitude :: Double+  , _locationlongitude :: Double+  } deriving (Eq, Ord, Show)++makeClassy ''Location
− src/Data/Aviation/Casr/Logbook/Log.hs
@@ -1,86 +0,0 @@-module Data.Aviation.Casr.Logbook.Log (-  Log(..)-) where--import Data.Aviation.Casr.Logbook.ARN-import Data.Aviation.Casr.Logbook.DOB-import Data.Aviation.Casr.Logbook.Entries-import Data.Aviation.Casr.Logbook.Name-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Totals--data Log =-  Log-    Name-    DOB-    ARN-    Entries-  deriving (Eq, Ord, Show)-    -instance Markdown Log where-  markdown (Log (Name name') dob arn entries) =-    concat-      [-        "# Pilot Personal Log Book\n"-      , "### Civil Aviation Safety Regulation 1998 (61.345) [*austlii.edu.au*](http://www.austlii.edu.au/au/legis/cth/consol_reg/casr1998333/s61.345.html)\n\n"-      , "* "-      , markdown name'-      , "\n"-      , markdown dob-      , markdown arn-      , "\n----\n\n"-      , markdown (totals entries)-      , "\n----\n\n"-      , markdown entries-      ]-    -instance Html Log where-  html (Log name@(Name name') dob arn@(ARN arn') entries) =-    concat-      [-        "<!DOCTYPE HTML>"-      , "<html lang=\"en\">"-      , "<head>"-      , "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"-      , "<title>Pilot Personal Log Book &mdash; "-      , html name'-      , " ("-      , html arn'-      , ")"-      , "</title>"-      , "<link href=\"https://fonts.googleapis.com/css?family=Inconsolata:400,700\" rel=\"stylesheet\" type=\"text/css\">"-      , "<link rel=\"stylesheet\" type=\"text/css\" href=\"casr-logbook.css\">"-      , "<link rel=\"alternate\" type=\"application/atom+xml\" href=\"/atom.xml\" title=\"Atom feed\">"-      , "<script type=\"text/javascript\" src=\"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML\"></script>"-      , "<script type=\"text/javascript\" src=\"https://raw.github.com/Mathapedia/LaTeX2HTML5/master/latex2html5.min.js\"></script>"-      , "</head>"-      , "<body class=\"casr-logbook\">"    -      , "<div id=\"title\" class=\"title\">"-      , "<h1>Pilot Personal Log Book</h1>"-      , "</div>"-      , "<div id=\"subtitle\" class=\"subtitle\">"-      , "<h2>Civil Aviation Safety Regulation 1998 (61.345) <span class=\"austlii\"><a href=\"http://www.austlii.edu.au/au/legis/cth/consol_reg/casr1998333/s61.345.html\">austlii.edu.au</a></span></h2>"-      , "</div>" -      , "<div id=\"personal\" class=\"personal\">"     -      , "<ul>"-      , "<li id=\"name\">"-      , html name-      , "</li>"-      , "<li id=\"dob\">"-      , html dob-      , "</li>"-      , "<li id=\"arn\">"-      , html arn-      , "</li>"-      , "</ul>"            -      , "</div>"-      , "<hr>"-      , html (totals entries)-      , "<hr>"-      , "<div id=\"flightlogentries\" class=\"flightlogentries\">"-      , html entries-      , "</div> "-      , "</body>"-      , "</html>"-      ]
+ src/Data/Aviation/Casr/Logbook/Logbook.hs view
@@ -0,0 +1,53 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE FlexibleInstances #-}++module Data.Aviation.Casr.Logbook.Logbook(+  Logbook(..)+, aviatorlogbook+, emptylogbook+, singleentrylogbook+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.Entries(Entries(Entries), emptyentries, singleentry)+import Data.Aviation.Casr.Logbook.Entry(Entry)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Prelude(Show)++data Logbook ae se ee be =+  Logbook {+    _logbookaviator :: Aviator+  , _logbookentries :: (Entries ae se ee be)+  } deriving (Eq, Ord, Show)++makeClassy ''Logbook++aviatorlogbook ::+  Aviator+  -> [Entry ae se ee be]+  -> Logbook ae se ee be+aviatorlogbook a e =+  Logbook+    a+    (Entries e)++emptylogbook ::+  Aviator+  -> Logbook ae se ee be+emptylogbook a =+  Logbook+    a+    emptyentries++singleentrylogbook ::+  Aviator+  -> Entry ae se ee be+  -> Logbook ae se ee be+singleentrylogbook a e =+  Logbook+    a+    (singleentry e)
− src/Data/Aviation/Casr/Logbook/Name.hs
@@ -1,24 +0,0 @@-module Data.Aviation.Casr.Logbook.Name (-  Name(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype Name =-  Name-    String-  deriving (Eq, Ord, Show)--instance IsString Name where-  fromString =-    Name--instance Markdown Name where-  markdown (Name s) =-    "### " ++ markdown s ++ "\n"--instance Html Name where-  html (Name s) =-    "<span class=\"heading nameheading\">Name: </span><span class=\"nameinfo\">" ++ html s ++ "</span>"
− src/Data/Aviation/Casr/Logbook/PiC.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.PiC (-  PiC(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype PiC =-  PiC-    String-  deriving (Eq, Ord, Show)--instance IsString PiC where-  fromString =-    PiC-    -instance Markdown PiC where-  markdown (PiC s) =-    "* Pilot in Command: **" ++ markdown s ++ "**\n"--instance Html PiC where-  html (PiC s) =-    concat-      [-        "<span class=\"heading picheading\">"-      , "Pilot in Command"-      , "</span>"-      , ": "-      , "<span class=\"info picinfo\">"-      , html s-      , "</span>"-      ]-    
− src/Data/Aviation/Casr/Logbook/PoB.hs
@@ -1,52 +0,0 @@-module Data.Aviation.Casr.Logbook.PoB (-  PoB(..)-, solo-, dual-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data PoB =-  PoB Int-  deriving (Eq, Ord, Show)--solo ::-  PoB-solo =-  PoB 1--dual ::-  PoB-dual =-  PoB 2--instance Markdown PoB where  -  markdown (PoB n) =-    concat-      [-        "* PoB: **`"-      , case n of-          0 -> "unmanned"-          1 -> "solo"-          2 -> "dual"-          _ -> markdown n-      , "`**\n"-      ]--instance Html PoB where  -  html (PoB n) =-    concat-      [-        "<span class=\"heading pobheading\">"-      , "PoB"-      , "</span>"-      , ": "-      , "<span class=\"info pobinfo\">"-      , case n of-          0 -> "unmanned"-          1 -> "solo"-          2 -> "dual"-          _ -> html n-      , "</span>"-      ]
− src/Data/Aviation/Casr/Logbook/Printer/Html.hs
@@ -1,40 +0,0 @@-module Data.Aviation.Casr.Logbook.Printer.Html (-  Html(..)-, printHtml-, writeHtmlFile-) where--class Html s where-  html ::-    s-    -> String--instance Html Char where-  html '&' =-    "&amp;"-  html c =-    [c]-    -instance Html Int where-  html =-    show-    -instance Html a => Html [a] where-  html =-    (=<<) html--printHtml ::-  Html s =>-  s-  -> IO ()-printHtml =-  putStrLn . html--writeHtmlFile ::-  Html s =>-  FilePath-  -> s-  -> IO ()-writeHtmlFile p =-  writeFile p . html-  
− src/Data/Aviation/Casr/Logbook/Printer/Markdown.hs
@@ -1,38 +0,0 @@-module Data.Aviation.Casr.Logbook.Printer.Markdown (-  Markdown(..)-, printMarkdown-, writeMarkdownFile-) where--class Markdown s where-  markdown ::-    s-    -> String--instance Markdown Char where-  markdown =-    pure--instance Markdown Int where-  markdown =-    show--instance Markdown a => Markdown [a] where-  markdown =-    (=<<) markdown--printMarkdown ::-  Markdown s =>-  s-  -> IO ()-printMarkdown =-  putStrLn . markdown--writeMarkdownFile ::-  Markdown s =>-  FilePath-  -> s-  -> IO ()-writeMarkdownFile p =-  writeFile p . markdown-  
+ src/Data/Aviation/Casr/Logbook/Rating.hs view
@@ -0,0 +1,41 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Rating(+  Rating(..)+, nodayrating+, dayrating+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data Rating =+  Rating {+    _ratingName :: String+  , _ratingAchieved :: Maybe Day+  } deriving (Eq, Ord, Show)++makeClassy ''Rating++nodayrating ::+  String+  -> Rating+nodayrating r =+  Rating+    r+    Nothing++dayrating ::+  String+  -> Day+  -> Rating+dayrating r d =+  Rating+    r+    (Just d)
− src/Data/Aviation/Casr/Logbook/Sequence.hs
@@ -1,33 +0,0 @@-module Data.Aviation.Casr.Logbook.Sequence (-  Sequence(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.String--newtype Sequence =-  Sequence-    String-  deriving (Eq, Ord, Show)--instance IsString Sequence where-  fromString =-    Sequence--instance Markdown Sequence where-  markdown (Sequence s) =-    "* Sequence: **" ++ markdown s ++ "**\n"--instance Html Sequence where-  html (Sequence s) =-    concat-      [-        "<span class=\"heading sequenceheading\">"-      , "Sequence"-      , "</span>"-      , ": "-      , "<span class=\"info sequenceinfo\">"-      , html s-      , "</span>"-      ]
+ src/Data/Aviation/Casr/Logbook/SimulatorFlight.hs view
@@ -0,0 +1,41 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.SimulatorFlight(+  SimulatorFlight(..)+, dayonlysimulator+) where++import Control.Lens(makeClassy)+import Data.Aviation.Casr.Logbook.Time(Time, dayonly)+import Data.Aviation.Casr.Logbook.Aviator(Aviator)+import Data.Aviation.Casr.Logbook.TimeAmount(TimeAmount)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.String(String)+import Data.Time(Day)+import Prelude(Show)++data SimulatorFlight =+  SimulatorFlight {+    _simulatorflightname :: String+  , _simulatorflighttime :: Time+  , _simulatortype :: String+  , _simulatorothercrew :: [Aviator]+  , _instrumentsimulatorTimeAmount :: TimeAmount+  } deriving (Eq, Ord, Show)   ++makeClassy ''SimulatorFlight++dayonlysimulator ::+  String+  -> Day+  -> String+  -> [Aviator]+  -> TimeAmount+  -> SimulatorFlight+dayonlysimulator n d =+  SimulatorFlight+    n+    (dayonly d)+    
+ src/Data/Aviation/Casr/Logbook/Time.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.Time(+  Time(..)+, dayonly+, dayandtime+) where++import Control.Lens(makeClassy)+import Data.Eq(Eq)+import Data.Ord(Ord)+import Data.Maybe(Maybe(Nothing, Just))+import Data.Time(Day, TimeOfDay)+import Prelude(Show)++data Time =+  Time {+    _day :: Day+  , _timeofday :: Maybe TimeOfDay+  } deriving (Eq, Ord, Show)++makeClassy ''Time++dayonly ::+  Day+  -> Time+dayonly d =+  Time d Nothing++dayandtime ::+  Day+  -> TimeOfDay+  -> Time+dayandtime d t =+  Time d (Just t)
+ src/Data/Aviation/Casr/Logbook/TimeAmount.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}++module Data.Aviation.Casr.Logbook.TimeAmount(+  TimeAmount(..)+, parttimeamount+, zerotimeamount+, addtimeamount+) where++import Control.Lens(makeClassy, ( # ))+import Data.Eq(Eq)+import Data.Digit(Digit, x0, digit, (/+/))+import Data.Int(Int)+import Data.Monoid(Monoid(mempty, mappend))+import Data.Ord(Ord)+import Prelude(Show, Num((+)))++data TimeAmount =+  TimeAmount {+    _hours :: Int+  , _tenthofhour :: Digit+  } deriving (Eq, Ord, Show)++makeClassy ''TimeAmount++parttimeamount ::+  Digit+  -> TimeAmount+parttimeamount =+  TimeAmount 0++zerotimeamount ::+  TimeAmount+zerotimeamount =+  TimeAmount 0 x0++addtimeamount ::+  TimeAmount +  -> TimeAmount+  -> TimeAmount+TimeAmount f1 p1 `addtimeamount` TimeAmount f2 p2 =+  let (h, q) = p1 /+/ p2+  in  TimeAmount (f1 + f2 + digit # h) q ++instance Monoid TimeAmount where+  mempty =+    zerotimeamount+  mappend =+    addtimeamount
− src/Data/Aviation/Casr/Logbook/Totals.hs
@@ -1,232 +0,0 @@-module Data.Aviation.Casr.Logbook.Totals (-  Totals(..)-, zeroTotals-, singleTotals-, updateTotals-, totals-) where--import Data.Aviation.Casr.Logbook.Aircraft-import Data.Aviation.Casr.Logbook.DayNight-import Data.Aviation.Casr.Logbook.Engine-import Data.Aviation.Casr.Logbook.Entries-import Data.Aviation.Casr.Logbook.FlightEntry-import Data.Aviation.Casr.Logbook.Hours-import Data.Aviation.Casr.Logbook.PoB-import Data.Aviation.Casr.Logbook.PiC-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Foldable(foldl')-import Data.Map(Map)-import qualified Data.Map as Map-import Text.Printf--data Totals =-  Totals-    Hours -- total-    Hours -- dual-    Hours -- solo-    (Map String Hours) -- type-    (Map String Hours) -- aircraft-    Hours -- single-engine-    Hours -- multi-engine-    Hours -- day-    Hours -- night-    Hours -- day & night-    (Map String Hours) -- pilot in command-  deriving (Eq, Ord, Show)--instance Monoid Totals where-  mempty =-    zeroTotals-  Totals total1 dualhours1 solohours1 intype1 inreg1 singleengine1 multiengine1 day1 night1 daynight1 pic1 `mappend` Totals total2 dualhours2 solohours2 intype2 inreg2 singleengine2 multiengine2 day2 night2 daynight2 pic2 =-    Totals-      (total1 `mappend` total2)-      (dualhours1 `mappend` dualhours2)-      (solohours1 `mappend` solohours2)-      (Map.unionWith mappend intype1 intype2)-      (Map.unionWith mappend inreg1 inreg2)-      (singleengine1 `mappend` singleengine2)-      (multiengine1 `mappend` multiengine2)-      (day1 `mappend` day2)-      (night1 `mappend` night2)-      (daynight1 `mappend` daynight2)-      (Map.unionWith mappend pic1 pic2)--instance Markdown Totals where-  markdown (Totals total dualhours solohours intype inreg singleengine multiengine day night daynight pic) =-    let displayHours (Hours f p) =-          show f ++ "." ++ show p-        displayPoint x h =-          "* " ++ x ++ ": **`" ++ displayHours h ++ "`**\n"-        displayMap x m =-          "* " ++ x ++ "\n" ++ Map.foldrWithKey (\k h s -> "  * " ++ k ++ ": **`" ++ displayHours h ++ " (" ++ printf "%.2f" (fractionalHours h / fractionalHours total * 100 :: Double) ++ "%)`**\n" ++ s) "" m-    in  concat-          [-            "##### Summary\n"-          , displayPoint "Total Hours" total-          , displayPoint "Dual Hours" dualhours-          , displayPoint "Solo Hours" solohours-          , displayMap "Hours in type" intype-          , displayMap "Hours in registration" inreg-          , displayPoint "Single-engine Hours" singleengine-          , displayPoint "Multi-engine Hours" multiengine-          , displayPoint "Day Hours" day-          , displayPoint "Night Hours" night-          , displayPoint "Day & Night Hours" daynight-          , displayMap "Hours with PiC" pic            -          ]--instance Html Totals where-  html (Totals total dualhours solohours intype inreg singleengine multiengine day night daynight pic) =-    let displayHours (Hours f p) =-          show f ++ "." ++ show p-        displayPoint x h q =-          concat-            [-              "<li class=\"summarypoint\">"-            , "<span id=\""-            , q-            , "\" class=\"heading summarypointheading summarypointheading"-            , q-            , "\">"-            , x            -            , "</span>: <span class=\"summarypoint summarypoint"-            , q-            , "\">"            -            , displayHours h-            , "</span></li>"-            ]-        displayMap x m q =-          concat-            [-              "<li class=\"summarypoint summarypoint"-            , q-            , "\">"-            , "<span id=\""-            , q-            , "\" class=\"heading summarypointheading summarypointheading"-            , q-            , "\">"-            , x            -            , "</span>: <div class=\"summarypoint summarypoint"-            , q-            , "\"><ul>"-            , Map.foldrWithKey (\k h s -> concat [-                                                   "<li class=\"subsummarypoint subsummarypoint"-                                                 , q-                                                 , "\">"-                                                 , "<span class=\"heading subsummarypointheading subsummarypointheading"-                                                 , q-                                                 , "\">"-                                                 , k-                                                 , "</span>: <span class=\"subsummarypointhours subsummarypointhours"-                                                 , q-                                                 , "\">"-                                                 , displayHours h-                                                 , "</span> <span class=\"subsummarypointpercentage subsummarypointpercentage"-                                                 , q-                                                 , "\">("-                                                 , printf "%.2f" (fractionalHours h / fractionalHours total * 100 :: Double)-                                                 , "%)</span>"-                                                 , "</li>"-                                                 , s-                                                 ]) "" m-            , "</ul></div></li>"-            ]        -    in  concat-          [-            "<div id=\"summary\" class=\"totals\">"-          , "<div class=\"hreflink\">"-          , "<a href=\"#summary\">§</a>"-          , "</div>"-          , "<h5>Summary</h5>"-          , "<ul>"-          , displayPoint "Total Hours" total "totalhours"-          , displayPoint "Dual Hours" dualhours "dualhours"-          , displayPoint "Solo Hours" solohours "solohours"-          , displayMap "Hours in type" intype "hoursintype"-          , displayMap "Hours in registration" inreg "hoursinregistration"-          , displayPoint "Single-engine Hours" singleengine "singleenginehours"-          , displayPoint "Multi-engine Hours" multiengine "multienginehours"-          , displayPoint "Day Hours" day "dayhours"-          , displayPoint "Night Hours" night "nighthours"-          , displayPoint "Day &amp; Night Hours" daynight "daynighthours"-          , displayMap "Hours with PiC" pic "pichours"           -          , "</ul>"-          , "</div>"-          ]--zeroTotals ::-  Totals-zeroTotals =-  Totals-    zeroHours-    zeroHours-    zeroHours-    Map.empty-    Map.empty-    zeroHours-    zeroHours-    zeroHours-    zeroHours-    zeroHours-    Map.empty--singleTotals ::- FlightEntry- -> Totals-singleTotals (FlightEntry _ _ (Aircraft atype areg aeng) hours (PoB pob) _ dn (PiC pic) _ _ _ _) =-  Totals-    hours-    (-      case pob of-        2 -> hours-        _ -> zeroHours-    )-    (-      case pob of-        1 -> hours-        _ -> zeroHours-    )-    (Map.singleton atype hours)-    (Map.singleton areg hours)-    (-      case aeng of-        Single -> hours-        _ -> zeroHours-    )-    (-      case aeng of-        Multi -> hours-        _ -> zeroHours-    )-    (-      case dn of-        Day -> hours-        _ -> zeroHours-    )-    (-      case dn of-        Night -> hours-        _ -> zeroHours-    )-    (-      case dn of-        Night -> hours-        _ -> zeroHours-    )-    (Map.singleton pic hours)--updateTotals ::-  FlightEntry-  -> Totals-  -> Totals-updateTotals =-  mappend . singleTotals--totals ::-  Entries-  -> Totals-totals =-  foldl' (flip updateTotals) zeroTotals . flightEntries
− src/Data/Aviation/Casr/Logbook/TrackLog.hs
@@ -1,105 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLog (-  TrackLog(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.TrackLogType-import Data.Maybe--data TrackLog =-  TrackLog-    String -- uri-    (Maybe String) -- name-    TrackLogType-  deriving (Eq, Ord, Show)--instance Markdown TrackLog where-  markdown (TrackLog uri name ttype) =-    let t = markdown ttype        -        n = fmap (\z -> "**" ++ z ++ "**") name-    in  concat $ -          case ttype of -            ImageLog _ ->              -                [-                  "  * "-                , case n of-                    Nothing ->-                      "*" ++ t ++ "*"-                    Just n' ->-                      n'-                , "\n\n    "-                , "<a href=\""-                , uri-                , "\"><img src=\""-                , uri-                , "\" width=\"360\" alt=\""-                , fromMaybe t name-                , "\"></a>"-                ]-            _ ->              -                [-                  "  * "-                , case n of-                    Nothing ->-                      ""-                    Just n' ->-                      n' ++ ": "-                , "["-                , t-                , "]("-                , uri-                , ")"-                ]--instance Html TrackLog where-  html (TrackLog uri name ttype) =-    let t = html ttype   -        n = fmap html name-    in  concat [-            "<div class=\"tracklog\">"-          , concat $ -              case ttype of -                ImageLog _ ->-                  [-                    fromMaybe (concat-                          [-                            "<a href=\""-                          , uri-                          , "\">"-                          , "<span class=\"tracklogtype\">"-                          , t-                          , "</span>"-                          , "</a>"-                          ]) n-                  , "<p>"-                  , "<a href=\""-                  , uri-                  , "\">"-                  , "<span class=\"tracklogimage\">"-                  , "<img src=\""-                  , uri-                  , "\" width=\"360\" alt=\""-                  , fromMaybe t n-                  , "\">"-                  , "</span>"-                  , "</a>"-                  , "</p>"-                  ]-                _ ->-                  [-                    case n of-                      Nothing ->-                        ""-                      Just n' ->-                        n' ++ ": "-                  , "<a href=\""-                  , uri-                  , "\">"-                  , "<span class=\"tracklogtype\">"-                  , t-                  , "</span>"-                  , "</a>"-                  ]-             , "</div>"-          ]
− src/Data/Aviation/Casr/Logbook/TrackLogType.hs
@@ -1,34 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLogType (-  TrackLogType(..)-) where--import Data.Aviation.Casr.Logbook.ImageType-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data TrackLogType =-  Gpx-  | Kml-  | Kmz-  | ImageLog ImageType-  deriving (Eq, Ord, Show)-    -instance Markdown TrackLogType where-  markdown Gpx =-    "gpx"-  markdown Kml =-    "kml"-  markdown Kmz =-    "kmz"-  markdown (ImageLog i) =-    markdown i--instance Html TrackLogType where-  html Gpx =-    "gpx"-  html Kml =-    "kml"-  html Kmz =-    "kmz"-  html (ImageLog i) =-    html i
− src/Data/Aviation/Casr/Logbook/TrackLogs.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.TrackLogs (-  TrackLogs(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.TrackLog--newtype TrackLogs =-  TrackLogs-    [TrackLog]-  deriving (Eq, Ord, Show)--instance Monoid TrackLogs where-  mempty =-    TrackLogs []-  TrackLogs t1 `mappend` TrackLogs t2 =-    TrackLogs (t1 `mappend` t2)--instance Markdown TrackLogs where-  markdown (TrackLogs t) =-    case t of-      [] ->-        ""-      _ ->-        "* **Track**\n" ++ (t >>= \u -> markdown u ++ "\n")--instance Html TrackLogs where-  html (TrackLogs t) =-    case t of-      [] ->-        ""-      _ ->-        concat-          [-            "<span class=\"heading tracklogheading\">"-          , "Track"-          , "</span>"-          , "<ul>"-          , t >>= \u -> concat-                          [-                            "<li>"-                          , html u-                          , "</li>"-                          ]-          , "</ul>"-          ]-        
− src/Data/Aviation/Casr/Logbook/Video.hs
@@ -1,103 +0,0 @@-module Data.Aviation.Casr.Logbook.Video (-  Video(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.VideoType-import Data.Maybe--data Video =-  Video-    String -- uri-    (Maybe String) -- name-    VideoType-  deriving (Eq, Ord, Show)--instance Markdown Video where-  markdown (Video uri name vtype) =-    let t = markdown vtype-        n = fromMaybe ("Video (" ++ t ++ ")") name-    in  concat-          [-            "**"-          , n-          , ":** ["-          , t-          , "]("-          , "https://www.youtube.com/watch?v="-          , uri-          , ")"-          ]--instance Html Video where-  html (Video uri name vtype) =-    let t = html vtype-        n = fromMaybe ("Video (" ++ t ++ ")") name-    in  concat-          [-            "<div>"-          , case vtype of-              YouTube ->-                concat-                  [-                    "<a href=\"https://www.youtube.com/watch?v="-                  , uri-                  , "\">"-                  , "<span class=\"videoname\">"-                  , html n-                  , "</span>"-                  , "</a>"-                  ]-              Bambuser ->-                concat-                  [-                    "<a href=\"https://bambuser.com/v/"-                  , uri-                  , "\">"-                  , "<span class=\"videoname\">"-                  , html n-                  , "</span>"-                  , "</a>"-                  ]-              Vimeo ->-                concat-                  [-                    "<a href=\"https://vimeo.com/"-                  , uri-                  , "\">"-                  , "<span class=\"videoname\">"-                  , html n-                  , "</span>"-                  , "</a>"-                   ]-          , "</div>"-          , "<p>"-          , case vtype of-              YouTube ->-                concat-                  [  -                    "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"http://www.youtube.com/embed/"-                  , uri-                  , "?autohide=1&amp;cc_load_policy=1&amp;color=white&amp;controls=1&amp;disablekb=0&amp;fs=1&amp;iv_load_policy=0&amp;loop=0&amp;modestbranding=1&amp;rel=0&amp;showinfo=0\">"-                  , "</iframe>"                                  -                  ]-              Bambuser ->-                concat-                  [                 -                    "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"https://embed.bambuser.com/broadcast/"-                  , uri-                  , "?chat=1&amp;mute=0"-                  , "\">"-                  , "</iframe>"                   -                  ]-              Vimeo ->-                concat-                  [ -                    "<iframe width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\" src=\"https://player.vimeo.com/video/"-                  , uri-                  , "\">"-                  , "</iframe>"                                  -                  ]-            , "</p>"-          ]
− src/Data/Aviation/Casr/Logbook/VideoType.hs
@@ -1,28 +0,0 @@-module Data.Aviation.Casr.Logbook.VideoType (-  VideoType(..)  -) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html--data VideoType =-  YouTube-  | Vimeo-  | Bambuser-  deriving (Eq, Ord, Show)--instance Markdown VideoType where-  markdown YouTube =-    "youtube"-  markdown Vimeo =-    "vimeo"-  markdown Bambuser =-    "bambuser"--instance Html VideoType where-  html YouTube =-    "youtube"-  html Vimeo =-    "vimeo"-  html Bambuser =-    "bambuser"
− src/Data/Aviation/Casr/Logbook/Videos.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.Videos (-  Videos(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Video--newtype Videos =-  Videos-    [Video]-  deriving (Eq, Ord, Show)-    -instance Monoid Videos where-  mempty =-    Videos []-  Videos v1 `mappend` Videos v2 =-    Videos (v1 `mappend` v2)--instance Markdown Videos where-  markdown (Videos v) =-    case v of-      [] ->-        ""-      _ ->-        "* **Videos**\n" ++ (v >>= \w -> "  * " ++ markdown w ++ "\n")--instance Html Videos where-  html (Videos v) =-    case v of-      [] ->-        ""-      _ ->-        concat-          [-            "<span class=\"heading videoheading\">"-          , "Video"-          , "</span>"-          , "<ul>"-          , v >>= \u -> concat-                          [-                            "<li>"-                          , html u-                          , "</li>"-                          ]-          , "</ul>"-          ]-        
− src/Data/Aviation/Casr/Logbook/Visualisation.hs
@@ -1,56 +0,0 @@-module Data.Aviation.Casr.Logbook.Visualisation (-  Visualisation(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.VisualisationType-import Data.Maybe--data Visualisation =-  Visualisation-    String -- uri-    (Maybe String) -- name-    VisualisationType-  deriving (Eq, Ord, Show)--instance Markdown Visualisation where-  markdown (Visualisation uri name vtype) =-    let t = markdown vtype-        n = case name of-              Nothing -> ""-              Just n' -> "**" ++ n' ++ "**: "-    in  concat-          [-            n-          , "["-          , t-          , "]("-          , uri-          , ")"-          ]--instance Html Visualisation where-  html (Visualisation uri name vtype) =-    let t = html vtype-        n = fromMaybe t name-    in  concat-          [-            "<a href=\""-          , uri-          , "\">"-          , "<span class=\"visualisationheading\">"-          , html n-          , "</span>"-          , "</a>"-          , "<p>"-          , case vtype of-              Doarama e ->-                concat-                  [-                    "<iframe src=\"http://www.doarama.com/embed?k="-                  , e-                  , "\" width=\"560\" height=\"315\" allowfullscreen=\"allowfullscreen\">"-                  , "</iframe>"-                  ]-          ]
− src/Data/Aviation/Casr/Logbook/VisualisationType.hs
@@ -1,19 +0,0 @@-module Data.Aviation.Casr.Logbook.VisualisationType (-  VisualisationType(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown--data VisualisationType =-  Doarama-    String -- http://oembed.frdnspnzr.de/-  deriving (Eq, Ord, Show)--instance Markdown VisualisationType where-  markdown (Doarama _) =-    "doarama"--instance Html VisualisationType where-  html (Doarama _) =-    "doarama"
− src/Data/Aviation/Casr/Logbook/Visualisations.hs
@@ -1,48 +0,0 @@-module Data.Aviation.Casr.Logbook.Visualisations (-  Visualisations(..)-) where--import Data.Aviation.Casr.Logbook.Printer.Html-import Data.Aviation.Casr.Logbook.Printer.Markdown-import Data.Aviation.Casr.Logbook.Visualisation--newtype Visualisations =-  Visualisations-    [Visualisation]-  deriving (Eq, Ord, Show)-    -instance Monoid Visualisations where-  mempty =-    Visualisations []-  Visualisations v1 `mappend` Visualisations v2 =-    Visualisations (v1 `mappend` v2)-       -instance Markdown Visualisations where-  markdown (Visualisations v) =-    case v of-      [] ->-        ""-      _ ->-        "* **Visualisations**\n" ++ (v >>= \w -> "  * " ++ markdown w ++ "\n")--instance Html Visualisations where-  html (Visualisations v) =-    case v of-      [] ->-        ""-      _ ->-        concat-          [-            "<span class=\"heading visualisationheading\">"-          , "Visualisation"-          , "</span>"-          , "<ul>"-          , v >>= \u -> concat-                          [-                            "<li>"-                          , html u-                          , "</li>"-                          ]-          , "</ul>"-          ]-