packages feed

casa-reoc-0.1.0.0: test/OpticsTests.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wall #-}

-- | The laws of the manifest of every data type, and of every instance of a name, and the coverage of each sum.
module OpticsTests (
  opticsTests,
) where

import Control.Lens (ALens', APrism', Traversal', has)
import Data.ByteString (ByteString)
import Data.List.NonEmpty (NonEmpty)
import Data.Text (Text)
import Data.Time.Calendar (Day)
import Data.Time.Calendar.Month (Month)
import DataGens
import Hedgehog (Property, PropertyName, cover, forAll, property, withTests, (===))
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
import Laws
import Numeric.Natural (Natural)
import PrimitiveGens
import ReOC

opticsTests :: [(PropertyName, Property)]
opticsTests =
  concat
    [ [("lawNamesAustralianState", property $ forAll genAustralianState >>= \s -> lawNamesAustralianState s === s)]
    , [("coverage AustralianState", withTests 100 . property $ forAll genAustralianState >>= \s -> cover 1 "NewSouthWales" (has newSouthWales s) >> cover 1 "Victoria" (has victoria s) >> cover 1 "Queensland" (has queensland s) >> cover 1 "WesternAustralia" (has westernAustralia s) >> cover 1 "SouthAustralia" (has southAustralia s) >> cover 1 "Tasmania" (has tasmania s) >> cover 1 "AustralianCapitalTerritory" (has australianCapitalTerritory s) >> cover 1 "NorthernTerritory" (has northernTerritory s))]
    , prismLaws "AustralianState.newSouthWales" (newSouthWales :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.victoria" (victoria :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.queensland" (queensland :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.westernAustralia" (westernAustralia :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.southAustralia" (southAustralia :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.tasmania" (tasmania :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.australianCapitalTerritory" (australianCapitalTerritory :: APrism' AustralianState ()) genAustralianState (pure ())
    , prismLaws "AustralianState.northernTerritory" (northernTerritory :: APrism' AustralianState ()) genAustralianState (pure ())
    , [("lawNamesRPACategory", property $ forAll genRPACategory >>= \s -> lawNamesRPACategory s === s)]
    , [("coverage RPACategory", withTests 100 . property $ forAll genRPACategory >>= \s -> cover 1 "Aeroplane" (has aeroplane s) >> cover 1 "Helicopter" (has helicopter s) >> cover 1 "Multirotor" (has multirotor s) >> cover 1 "PoweredLift" (has poweredLift s))]
    , prismLaws "RPACategory.aeroplane" (aeroplane :: APrism' RPACategory ()) genRPACategory (pure ())
    , prismLaws "RPACategory.helicopter" (helicopter :: APrism' RPACategory ()) genRPACategory (pure ())
    , prismLaws "RPACategory.multirotor" (multirotor :: APrism' RPACategory ()) genRPACategory (pure ())
    , prismLaws "RPACategory.poweredLift" (poweredLift :: APrism' RPACategory ()) genRPACategory (pure ())
    , [("lawNamesLikelihood", property $ forAll genLikelihood >>= \s -> lawNamesLikelihood s === s)]
    , [("coverage Likelihood", withTests 100 . property $ forAll genLikelihood >>= \s -> cover 1 "Frequent" (has frequent s) >> cover 1 "Occasional" (has occasional s) >> cover 1 "Remote" (has remote s) >> cover 1 "Improbable" (has improbable s) >> cover 1 "ExtremelyImprobable" (has extremelyImprobable s))]
    , prismLaws "Likelihood.frequent" (frequent :: APrism' Likelihood ()) genLikelihood (pure ())
    , prismLaws "Likelihood.occasional" (occasional :: APrism' Likelihood ()) genLikelihood (pure ())
    , prismLaws "Likelihood.remote" (remote :: APrism' Likelihood ()) genLikelihood (pure ())
    , prismLaws "Likelihood.improbable" (improbable :: APrism' Likelihood ()) genLikelihood (pure ())
    , prismLaws "Likelihood.extremelyImprobable" (extremelyImprobable :: APrism' Likelihood ()) genLikelihood (pure ())
    , [("lawNamesConsequence", property $ forAll genConsequence >>= \s -> lawNamesConsequence s === s)]
    , [("coverage Consequence", withTests 100 . property $ forAll genConsequence >>= \s -> cover 1 "Catastrophic" (has catastrophic s) >> cover 1 "Hazardous" (has hazardous s) >> cover 1 "Moderate" (has moderate s) >> cover 1 "Minor" (has minor s) >> cover 1 "Negligible" (has negligible s))]
    , prismLaws "Consequence.catastrophic" (catastrophic :: APrism' Consequence ()) genConsequence (pure ())
    , prismLaws "Consequence.hazardous" (hazardous :: APrism' Consequence ()) genConsequence (pure ())
    , prismLaws "Consequence.moderate" (moderate :: APrism' Consequence ()) genConsequence (pure ())
    , prismLaws "Consequence.minor" (minor :: APrism' Consequence ()) genConsequence (pure ())
    , prismLaws "Consequence.negligible" (negligible :: APrism' Consequence ()) genConsequence (pure ())
    , [("lawNamesRiskLevel", property $ forAll genRiskLevel >>= \s -> lawNamesRiskLevel s === s)]
    , [("coverage RiskLevel", withTests 100 . property $ forAll genRiskLevel >>= \s -> cover 1 "High" (has high s) >> cover 1 "Medium" (has medium s) >> cover 1 "Low" (has low s))]
    , prismLaws "RiskLevel.high" (high :: APrism' RiskLevel ()) genRiskLevel (pure ())
    , prismLaws "RiskLevel.medium" (medium :: APrism' RiskLevel ()) genRiskLevel (pure ())
    , prismLaws "RiskLevel.low" (low :: APrism' RiskLevel ()) genRiskLevel (pure ())
    , [("lawNamesKeyPosition", property $ forAll genKeyPosition >>= \s -> lawNamesKeyPosition s === s)]
    , [("coverage KeyPosition", withTests 100 . property $ forAll genKeyPosition >>= \s -> cover 1 "ChiefExecutiveOfficer" (has chiefExecutiveOfficer s) >> cover 1 "ChiefRemotePilot" (has chiefRemotePilot s) >> cover 1 "MaintenanceController" (has maintenanceController s))]
    , prismLaws "KeyPosition.chiefExecutiveOfficer" (chiefExecutiveOfficer :: APrism' KeyPosition ()) genKeyPosition (pure ())
    , prismLaws "KeyPosition.chiefRemotePilot" (chiefRemotePilot :: APrism' KeyPosition ()) genKeyPosition (pure ())
    , prismLaws "KeyPosition.maintenanceController" (maintenanceController :: APrism' KeyPosition ()) genKeyPosition (pure ())
    , [("lawNamesBackupInterval", property $ forAll genBackupInterval >>= \s -> lawNamesBackupInterval s === s)]
    , [("coverage BackupInterval", withTests 100 . property $ forAll genBackupInterval >>= \s -> cover 1 "Daily" (has daily s) >> cover 1 "Weekly" (has weekly s) >> cover 1 "Monthly" (has monthly s))]
    , prismLaws "BackupInterval.daily" (daily :: APrism' BackupInterval ()) genBackupInterval (pure ())
    , prismLaws "BackupInterval.weekly" (weekly :: APrism' BackupInterval ()) genBackupInterval (pure ())
    , prismLaws "BackupInterval.monthly" (monthly :: APrism' BackupInterval ()) genBackupInterval (pure ())
    , [("lawNamesCourseType", property $ forAll genCourseType >>= \s -> lawNamesCourseType s === s)]
    , [("coverage CourseType", withTests 100 . property $ forAll genCourseType >>= \s -> cover 1 "InitialCourse" (has initialCourse s) >> cover 1 "UpgradeSameCategory" (has upgradeSameCategory s) >> cover 1 "UpgradeDifferentCategory" (has upgradeDifferentCategory s))]
    , prismLaws "CourseType.initialCourse" (initialCourse :: APrism' CourseType ()) genCourseType (pure ())
    , prismLaws "CourseType.upgradeSameCategory" (upgradeSameCategory :: APrism' CourseType ()) genCourseType (pure ())
    , prismLaws "CourseType.upgradeDifferentCategory" (upgradeDifferentCategory :: APrism' CourseType ()) genCourseType (pure ())
    , [("lawNamesComplexity", property $ forAll genComplexity >>= \s -> lawNamesComplexity s === s)]
    , [("coverage Complexity", withTests 100 . property $ forAll genComplexity >>= \s -> cover 1 "AutomatedAndManual" (has automatedAndManual s) >> cover 1 "AutomatedOnly" (has automatedOnly s))]
    , prismLaws "Complexity.automatedAndManual" (automatedAndManual :: APrism' Complexity ()) genComplexity (pure ())
    , prismLaws "Complexity.automatedOnly" (automatedOnly :: APrism' Complexity ()) genComplexity (pure ())
    , [("lawNamesInstructorTakeover", property $ forAll genInstructorTakeover >>= \s -> lawNamesInstructorTakeover s === s)]
    , [("coverage InstructorTakeover", withTests 100 . property $ forAll genInstructorTakeover >>= \s -> cover 1 "DualControllerLink" (has dualControllerLink s) >> cover 1 "SharedController" (has sharedController s))]
    , prismLaws "InstructorTakeover.dualControllerLink" (dualControllerLink :: APrism' InstructorTakeover ()) genInstructorTakeover (pure ())
    , prismLaws "InstructorTakeover.sharedController" (sharedController :: APrism' InstructorTakeover ()) genInstructorTakeover (pure ())
    , [("lawNamesTheoryDelivery", property $ forAll genTheoryDelivery >>= \s -> lawNamesTheoryDelivery s === s)]
    , [("coverage TheoryDelivery", withTests 100 . property $ forAll genTheoryDelivery >>= \s -> cover 1 "ClassroomTheory" (has classroomTheory s) >> cover 1 "BlendedTheory" (has blendedTheory s) >> cover 1 "OnlineTheory" (has onlineTheory s))]
    , prismLaws "TheoryDelivery.classroomTheory" (classroomTheory :: APrism' TheoryDelivery ()) genTheoryDelivery (pure ())
    , prismLaws "TheoryDelivery.blendedTheory" (blendedTheory :: APrism' TheoryDelivery ()) genTheoryDelivery (pure ())
    , prismLaws "TheoryDelivery.onlineTheory" (onlineTheory :: APrism' TheoryDelivery ()) genTheoryDelivery (pure ())
    , [("lawNamesExamDelivery", property $ forAll genExamDelivery >>= \s -> lawNamesExamDelivery s === s)]
    , [("coverage ExamDelivery", withTests 100 . property $ forAll genExamDelivery >>= \s -> cover 1 "PaperExamination" (has paperExamination s) >> cover 1 "ComputerExamination" (has computerExamination s))]
    , prismLaws "ExamDelivery.paperExamination" (paperExamination :: APrism' ExamDelivery ()) genExamDelivery (pure ())
    , prismLaws "ExamDelivery.computerExamination" (computerExamination :: APrism' ExamDelivery ()) genExamDelivery (pure ())
    , [("lawNamesFlightTestExaminer", property $ forAll genFlightTestExaminer >>= \s -> lawNamesFlightTestExaminer s === s)]
    , [("coverage FlightTestExaminer", withTests 100 . property $ forAll genFlightTestExaminer >>= \s -> cover 1 "CRIConductsFlightTests" (has criConductsFlightTests s) >> cover 1 "IndependentExaminerWhereAvailable" (has independentExaminerWhereAvailable s))]
    , prismLaws "FlightTestExaminer.criConductsFlightTests" (criConductsFlightTests :: APrism' FlightTestExaminer ()) genFlightTestExaminer (pure ())
    , prismLaws "FlightTestExaminer.independentExaminerWhereAvailable" (independentExaminerWhereAvailable :: APrism' FlightTestExaminer ()) genFlightTestExaminer (pure ())
    , [("lawNamesDirectorship", property $ forAll genDirectorship >>= \s -> lawNamesDirectorship s === s)]
    , [("coverage Directorship", withTests 100 . property $ forAll genDirectorship >>= \s -> cover 1 "SoleDirector" (has soleDirector s) >> cover 1 "Director" (has director s) >> cover 1 "NotADirector" (has notADirector s))]
    , prismLaws "Directorship.soleDirector" (soleDirector :: APrism' Directorship ()) genDirectorship (pure ())
    , prismLaws "Directorship.director" (director :: APrism' Directorship ()) genDirectorship (pure ())
    , prismLaws "Directorship.notADirector" (notADirector :: APrism' Directorship ()) genDirectorship (pure ())
    , [("lawNamesRadioQualification", property $ forAll genRadioQualification >>= \s -> lawNamesRadioQualification s === s)]
    , [("coverage RadioQualification", withTests 100 . property $ forAll genRadioQualification >>= \s -> cover 1 "FlightCrewLicence" (has flightCrewLicence s) >> cover 1 "RadioOperatorCertificate" (has radioOperatorCertificate s) >> cover 1 "NoRadioQualification" (has noRadioQualification s))]
    , prismLaws "RadioQualification.flightCrewLicence" (flightCrewLicence :: APrism' RadioQualification ()) genRadioQualification (pure ())
    , prismLaws "RadioQualification.radioOperatorCertificate" (radioOperatorCertificate :: APrism' RadioQualification ()) genRadioQualification (pure ())
    , prismLaws "RadioQualification.noRadioQualification" (noRadioQualification :: APrism' RadioQualification ()) genRadioQualification (pure ())
    , [("lawNamesRemotePilots", property $ forAll genRemotePilots >>= \s -> lawNamesRemotePilots s === s)]
    , [("coverage RemotePilots", withTests 100 . property $ forAll genRemotePilots >>= \s -> cover 1 "CRPIsOnlyRemotePilot" (has crpIsOnlyRemotePilot s) >> cover 1 "OtherRemotePilots" (has otherRemotePilots s))]
    , prismLaws "RemotePilots.crpIsOnlyRemotePilot" (crpIsOnlyRemotePilot :: APrism' RemotePilots ()) genRemotePilots (pure ())
    , prismLaws "RemotePilots.otherRemotePilots" (otherRemotePilots :: APrism' RemotePilots ()) genRemotePilots (pure ())
    , [("lawNamesCrewing", property $ forAll genCrewing >>= \s -> lawNamesCrewing s === s)]
    , [("coverage Crewing", withTests 100 . property $ forAll genCrewing >>= \s -> cover 1 "SoloOperationsOnly" (has soloOperationsOnly s) >> cover 1 "SoloAndMultiCrewOperations" (has soloAndMultiCrewOperations s))]
    , prismLaws "Crewing.soloOperationsOnly" (soloOperationsOnly :: APrism' Crewing ()) genCrewing (pure ())
    , prismLaws "Crewing.soloAndMultiCrewOperations" (soloAndMultiCrewOperations :: APrism' Crewing ()) genCrewing (pure ())
    , [("lawNamesTransponder", property $ forAll genTransponder >>= \s -> lawNamesTransponder s === s)]
    , [("coverage Transponder", withTests 100 . property $ forAll genTransponder >>= \s -> cover 1 "NoTransponder" (has noTransponder s) >> cover 1 "TransponderFitted" (has transponderFitted s))]
    , prismLaws "Transponder.noTransponder" (noTransponder :: APrism' Transponder ()) genTransponder (pure ())
    , prismLaws "Transponder.transponderFitted" (transponderFitted :: APrism' Transponder ()) genTransponder (pure ())
    , [("lawNamesVersionChange", property $ forAll genVersionChange >>= \s -> lawNamesVersionChange s === s)]
    , [("coverage VersionChange", withTests 100 . property $ forAll genVersionChange >>= \s -> cover 1 "MajorRevision" (has majorRevision s) >> cover 1 "MinorRevision" (has minorRevision s))]
    , prismLaws "VersionChange.majorRevision" (majorRevision :: APrism' VersionChange ()) genVersionChange (pure ())
    , prismLaws "VersionChange.minorRevision" (minorRevision :: APrism' VersionChange ()) genVersionChange (pure ())
    , [("lawNamesPerson'", property $ forAll genPerson >>= \s -> lawNamesPerson' s === s)]
    , lensLaws "Person'.fullName" (fullName :: ALens' Person FormLine) genPerson genFormText
    , lensLaws "Person'.arn" (arn :: ALens' Person ARN) genPerson genARN
    , lensLaws "Person'.phoneNumber" (phoneNumber :: ALens' Person PhoneNumber) genPerson genPhoneNumber
    , lensLaws "Person'.emailAddress" (emailAddress :: ALens' Person EmailAddress) genPerson genEmailAddress
    , [("lawNamesAddress'", property $ forAll genAddress >>= \s -> lawNamesAddress' s === s)]
    , lensLaws "Address'.streetAddress" (streetAddress :: ALens' Address (NonEmpty Text1)) genAddress (Gen.nonEmpty (Range.linear 1 2) genText1)
    , lensLaws "Address'.suburb" (suburb :: ALens' Address Text1) genAddress genText1
    , lensLaws "Address'.stateOrTerritory" (stateOrTerritory :: ALens' Address AustralianState) genAddress genAustralianState
    , lensLaws "Address'.postcode" (postcode :: ALens' Address Postcode) genAddress genPostcode
    , [("lawNamesOperationalHeadquarters'", property $ forAll genOperationalHeadquarters >>= \s -> lawNamesOperationalHeadquarters' s === s)]
    , [("coverage OperationalHeadquarters", withTests 100 . property $ forAll genOperationalHeadquarters >>= \s -> cover 1 "AtRegisteredOffice" (has atRegisteredOffice s) >> cover 1 "OperationalHeadquartersAddress" (has operationalHeadquartersAddress s))]
    , prismLaws "OperationalHeadquarters'.atRegisteredOffice" (atRegisteredOffice :: APrism' OperationalHeadquarters ()) genOperationalHeadquarters (pure ())
    , prismLaws "OperationalHeadquarters'.operationalHeadquartersAddress" (operationalHeadquartersAddress :: APrism' OperationalHeadquarters Address) genOperationalHeadquarters genAddress
    , [("lawNamesCompany'", property $ forAll genCompany >>= \s -> lawNamesCompany' s === s)]
    , lensLaws "Company'.companyName" (companyName :: ALens' Company (FormText 'Narrow 185 1)) genCompany genFormText
    , lensLaws "Company'.abn" (abn :: ALens' Company ABN) genCompany genABN
    , lensLaws "Company'.arn" (arn :: ALens' Company ARN) genCompany genARN
    , lensLaws "Company'.registeredOffice" (registeredOffice :: ALens' Company Address) genCompany genAddress
    , lensLaws "Company'.operationalHeadquarters" (operationalHeadquarters :: ALens' Company OperationalHeadquarters) genCompany genOperationalHeadquarters
    , lensLaws "Company'.phoneNumber" (phoneNumber :: ALens' Company PhoneNumber) genCompany genPhoneNumber
    , lensLaws "Company'.emailAddress" (emailAddress :: ALens' Company EmailAddress) genCompany genEmailAddress
    , lensLaws "Company'.businessName" (businessName :: ALens' Company (Maybe FormLine)) genCompany (Gen.maybe genFormText)
    , [("lawNamesFlightTermination'", property $ forAll genFlightTermination >>= \s -> lawNamesFlightTermination' s === s)]
    , [("coverage FlightTermination", withTests 100 . property $ forAll genFlightTermination >>= \s -> cover 1 "NoFlightTerminationSystem" (has noFlightTerminationSystem s) >> cover 1 "FlightTerminationSystem" (has flightTerminationSystem s))]
    , prismLaws "FlightTermination'.noFlightTerminationSystem" (noFlightTerminationSystem :: APrism' FlightTermination ()) genFlightTermination (pure ())
    , prismLaws "FlightTermination'.flightTerminationSystem" (flightTerminationSystem :: APrism' FlightTermination Text1) genFlightTermination genText1
    , [("lawNamesEmergencyAction'", property $ forAll genEmergencyAction >>= \s -> lawNamesEmergencyAction' s === s)]
    , lensLaws "EmergencyAction'.situation" (situation :: ALens' EmergencyAction Text1) genEmergencyAction genText1
    , lensLaws "EmergencyAction'.response" (response :: ALens' EmergencyAction Text1) genEmergencyAction genText1
    , lensLaws "EmergencyAction'.actionSteps" (actionSteps :: ALens' EmergencyAction [Text1]) genEmergencyAction (Gen.list (Range.linear 0 2) genText1)
    , [("lawNamesRPAType'", property $ forAll genRPAType >>= \s -> lawNamesRPAType' s === s)]
    , lensLaws "RPAType'.rpaMake" (rpaMake :: ALens' RPAType Text1) genRPAType genText1
    , lensLaws "RPAType'.rpaModel" (rpaModel :: ALens' RPAType Text1) genRPAType genText1
    , lensLaws "RPAType'.shortName" (shortName :: ALens' RPAType (FormText 'Narrow 84 1)) genRPAType genFormText
    , lensLaws "RPAType'.category" (category :: ALens' RPAType RPACategory) genRPAType genRPACategory
    , lensLaws "RPAType'.maximumGrossWeight" (maximumGrossWeight :: ALens' RPAType GrossWeight) genRPAType genGrossWeight
    , lensLaws "RPAType'.userManual" (userManual :: ALens' RPAType Text1) genRPAType genText1
    , lensLaws "RPAType'.transponderCarriage" (transponderCarriage :: ALens' RPAType Transponder) genRPAType genTransponder
    , lensLaws "RPAType'.flightTermination" (flightTermination :: ALens' RPAType FlightTermination) genRPAType genFlightTermination
    , lensLaws "RPAType'.inspectionItems" (inspectionItems :: ALens' RPAType (NonEmpty Text1)) genRPAType (Gen.nonEmpty (Range.linear 1 2) genText1)
    , lensLaws "RPAType'.beforeFlight" (beforeFlight :: ALens' RPAType [Text1]) genRPAType (Gen.list (Range.linear 0 2) genText1)
    , lensLaws "RPAType'.batteryWarnings" (batteryWarnings :: ALens' RPAType (Maybe Text1)) genRPAType (Gen.maybe genText1)
    , lensLaws "RPAType'.emergencyActions" (emergencyActions :: ALens' RPAType [EmergencyAction]) genRPAType (Gen.list (Range.linear 0 2) genEmergencyAction)
    , [("lawNamesEquipment'", property $ forAll genEquipment >>= \s -> lawNamesEquipment' s === s)]
    , lensLaws "Equipment'.equipmentDescription" (equipmentDescription :: ALens' Equipment Text1) genEquipment genText1
    , lensLaws "Equipment'.serialNumber" (serialNumber :: ALens' Equipment Text1) genEquipment genText1
    , [("lawNamesAircraft'", property $ forAll genAircraft >>= \s -> lawNamesAircraft' s === s)]
    , lensLaws "Aircraft'.serialNumber" (serialNumber :: ALens' Aircraft Text1) genAircraft genText1
    , lensLaws "Aircraft'.associatedEquipment" (associatedEquipment :: ALens' Aircraft [Equipment]) genAircraft (Gen.list (Range.linear 0 2) genEquipment)
    , [("lawNamesOperatedType'", property $ forAll genOperatedType >>= \s -> lawNamesOperatedType' s === s)]
    , lensLaws "OperatedType'.rpaType" (rpaType :: ALens' OperatedType RPAType) genOperatedType genRPAType
    , lensLaws "OperatedType'.airframes" (airframes :: ALens' OperatedType (NonEmpty Aircraft)) genOperatedType (Gen.nonEmpty (Range.linear 1 2) genAircraft)
    , [("lawNamesRePLOrigin'", property $ forAll genRePLOrigin >>= \s -> lawNamesRePLOrigin' s === s)]
    , [("coverage RePLOrigin", withTests 100 . property $ forAll genRePLOrigin >>= \s -> cover 1 "PPLTheory" (has pplTheory s) >> cover 1 "RePLTraining" (has rePLTrainingOrganisation s))]
    , prismLaws "RePLOrigin'.pplTheory" (pplTheory :: APrism' RePLOrigin ()) genRePLOrigin (pure ())
    , prismLaws "RePLOrigin'.rePLTrainingOrganisation" (rePLTrainingOrganisation :: APrism' RePLOrigin WideLine) genRePLOrigin genFormText
    , [("lawNamesOtherReOCRoles'", property $ forAll genOtherReOCRoles >>= \s -> lawNamesOtherReOCRoles' s === s)]
    , [("coverage OtherReOCRoles", withTests 100 . property $ forAll genOtherReOCRoles >>= \s -> cover 1 "NoOtherReOCRoles" (has noOtherReOCRoles s) >> cover 1 "OtherReOCRolesHeld" (has otherReOCRolesHeld s))]
    , prismLaws "OtherReOCRoles'.noOtherReOCRoles" (noOtherReOCRoles :: APrism' OtherReOCRoles ()) genOtherReOCRoles (pure ())
    , prismLaws "OtherReOCRoles'.otherReOCRolesHeld" (otherReOCRolesHeld :: APrism' OtherReOCRoles (FormLines 5)) genOtherReOCRoles genFormText
    , [("lawNamesNominee'", property $ forAll genNominee >>= \s -> lawNamesNominee' s === s)]
    , lensLaws "Nominee'.person" (person :: ALens' Nominee Person) genNominee genPerson
    , lensLaws "Nominee'.otherQualifications" (otherQualifications :: ALens' Nominee [Text1]) genNominee (Gen.list (Range.linear 0 2) genText1)
    , lensLaws "Nominee'.aviationExperience" (aviationExperience :: ALens' Nominee Text1) genNominee genText1
    , [("lawNamesChiefExecutive'", property $ forAll genChiefExecutive >>= \s -> lawNamesChiefExecutive' s === s)]
    , lensLaws "ChiefExecutive'.nominee" (nominee :: ALens' ChiefExecutive Nominee) genChiefExecutive genNominee
    , lensLaws "ChiefExecutive'.directorStatus" (directorStatus :: ALens' ChiefExecutive Directorship) genChiefExecutive genDirectorship
    , lensLaws "ChiefExecutive'.managementExperience" (managementExperience :: ALens' ChiefExecutive (Maybe (FormLines 6))) genChiefExecutive (Gen.maybe genFormText)
    , [("lawNamesCRPNominee'", property $ forAll genCRPNominee >>= \s -> lawNamesCRPNominee' s === s)]
    , [("coverage CRPNominee", withTests 100 . property $ forAll genCRPNominee >>= \s -> cover 1 "CRPIsCEO" (has crpIsCEO s) >> cover 1 "CRPNominated" (has crpNominated s))]
    , prismLaws "CRPNominee'.crpIsCEO" (crpIsCEO :: APrism' CRPNominee ()) genCRPNominee (pure ())
    , prismLaws "CRPNominee'.crpNominated" (crpNominated :: APrism' CRPNominee Nominee) genCRPNominee genNominee
    , [("lawNamesChiefPilot'", property $ forAll genChiefPilot >>= \s -> lawNamesChiefPilot' s === s)]
    , lensLaws "ChiefPilot'.crpNominee" (crpNominee :: ALens' ChiefPilot CRPNominee) genChiefPilot genCRPNominee
    , lensLaws "ChiefPilot'.rePLOrigin" (rePLOrigin :: ALens' ChiefPilot RePLOrigin) genChiefPilot genRePLOrigin
    , lensLaws "ChiefPilot'.rpaHistory" (rpaHistory :: ALens' ChiefPilot (FormLines 8)) genChiefPilot genFormText
    , lensLaws "ChiefPilot'.otherReOCRoles" (otherReOCRoles :: ALens' ChiefPilot OtherReOCRoles) genChiefPilot genOtherReOCRoles
    , lensLaws "ChiefPilot'.radio" (radio :: ALens' ChiefPilot RadioQualification) genChiefPilot genRadioQualification
    , [("lawNamesMCNominee'", property $ forAll genMCNominee >>= \s -> lawNamesMCNominee' s === s)]
    , [("coverage MCNominee", withTests 100 . property $ forAll genMCNominee >>= \s -> cover 1 "MCIsCEO" (has mcIsCEO s) >> cover 1 "MCIsCRP" (has mcIsCRP s) >> cover 1 "MCNominated" (has mcNominated s))]
    , prismLaws "MCNominee'.mcIsCEO" (mcIsCEO :: APrism' MCNominee ()) genMCNominee (pure ())
    , prismLaws "MCNominee'.mcIsCRP" (mcIsCRP :: APrism' MCNominee ()) genMCNominee (pure ())
    , prismLaws "MCNominee'.mcNominated" (mcNominated :: APrism' MCNominee Nominee) genMCNominee genNominee
    , [("lawNamesKeyPersonnel'", property $ forAll genKeyPersonnel >>= \s -> lawNamesKeyPersonnel' s === s)]
    , lensLaws "KeyPersonnel'.chiefExecutive" (chiefExecutive :: ALens' KeyPersonnel ChiefExecutive) genKeyPersonnel genChiefExecutive
    , lensLaws "KeyPersonnel'.chiefPilot" (chiefPilot :: ALens' KeyPersonnel ChiefPilot) genKeyPersonnel genChiefPilot
    , lensLaws "KeyPersonnel'.mcNominee" (mcNominee :: ALens' KeyPersonnel MCNominee) genKeyPersonnel genMCNominee
    , [("lawNamesOperator'", property $ forAll genOperator >>= \s -> lawNamesOperator' s === s)]
    , lensLaws "Operator'.company" (company :: ALens' Operator Company) genOperator genCompany
    , lensLaws "Operator'.keyPersonnel" (keyPersonnel :: ALens' Operator KeyPersonnel) genOperator genKeyPersonnel
    , lensLaws "Operator'.fleet" (fleet :: ALens' Operator (Some 8 OperatedType)) genOperator (genSome genOperatedType)
    , [("lawNamesContactPerson'", property $ forAll genContactPerson >>= \s -> lawNamesContactPerson' s === s)]
    , lensLaws "ContactPerson'.fullName" (fullName :: ALens' ContactPerson FormLine) genContactPerson genFormText
    , lensLaws "ContactPerson'.position" (position :: ALens' ContactPerson FormLine) genContactPerson genFormText
    , lensLaws "ContactPerson'.phoneNumber" (phoneNumber :: ALens' ContactPerson PhoneNumber) genContactPerson genPhoneNumber
    , lensLaws "ContactPerson'.emailAddress" (emailAddress :: ALens' ContactPerson EmailAddress) genContactPerson genEmailAddress
    , [("lawNamesPrimaryContact'", property $ forAll genPrimaryContact >>= \s -> lawNamesPrimaryContact' s === s)]
    , [("coverage PrimaryContact", withTests 100 . property $ forAll genPrimaryContact >>= \s -> cover 1 "ApplicantIsPrimaryContact" (has applicantIsPrimaryContact s) >> cover 1 "PrimaryContactPerson" (has primaryContactPerson s))]
    , prismLaws "PrimaryContact'.applicantIsPrimaryContact" (applicantIsPrimaryContact :: APrism' PrimaryContact ()) genPrimaryContact (pure ())
    , prismLaws "PrimaryContact'.primaryContactPerson" (primaryContactPerson :: APrism' PrimaryContact ContactPerson) genPrimaryContact genContactPerson
    , [("lawNamesHistoryAnswer'", property $ forAll genHistoryAnswer >>= \s -> lawNamesHistoryAnswer' s === s)]
    , [("coverage HistoryAnswer", withTests 100 . property $ forAll genHistoryAnswer >>= \s -> cover 1 "NoHistory" (has noHistory s) >> cover 1 "HistoryDisclosed" (has historyDisclosed s))]
    , prismLaws "HistoryAnswer'.noHistory" (noHistory :: APrism' HistoryAnswer ()) genHistoryAnswer (pure ())
    , prismLaws "HistoryAnswer'.historyDisclosed" (historyDisclosed :: APrism' HistoryAnswer (FormText 'Narrow 190 3)) genHistoryAnswer genFormText
    , [("lawNamesPersonnelHistory'", property $ forAll genPersonnelHistory >>= \s -> lawNamesPersonnelHistory' s === s)]
    , lensLaws "PersonnelHistory'.actionTaken" (actionTaken :: ALens' PersonnelHistory HistoryAnswer) genPersonnelHistory genHistoryAnswer
    , lensLaws "PersonnelHistory'.transportLicenceRefused" (transportLicenceRefused :: ALens' PersonnelHistory HistoryAnswer) genPersonnelHistory genHistoryAnswer
    , lensLaws "PersonnelHistory'.criminalConviction" (criminalConviction :: ALens' PersonnelHistory HistoryAnswer) genPersonnelHistory genHistoryAnswer
    , lensLaws "PersonnelHistory'.suspensionPending" (suspensionPending :: ALens' PersonnelHistory HistoryAnswer) genPersonnelHistory genHistoryAnswer
    , [("lawNamesRegulatoryAction'", property $ forAll genRegulatoryAction >>= \s -> lawNamesRegulatoryAction' s === s)]
    , lensLaws "RegulatoryAction'.reocSuspendedOrCancelled" (reocSuspendedOrCancelled :: ALens' RegulatoryAction Bool) genRegulatoryAction Gen.bool
    , lensLaws "RegulatoryAction'.typeOfAction" (typeOfAction :: ALens' RegulatoryAction FormLine) genRegulatoryAction genFormText
    , lensLaws "RegulatoryAction'.authorisationAction" (authorisationAction :: ALens' RegulatoryAction FormLine) genRegulatoryAction genFormText
    , lensLaws "RegulatoryAction'.actionDate" (actionDate :: ALens' RegulatoryAction Day) genRegulatoryAction genDay
    , lensLaws "RegulatoryAction'.actionDetails" (actionDetails :: ALens' RegulatoryAction (FormLines 4)) genRegulatoryAction genFormText
    , [("lawNamesRegulatoryHistory'", property $ forAll genRegulatoryHistory >>= \s -> lawNamesRegulatoryHistory' s === s)]
    , [("coverage RegulatoryHistory", withTests 100 . property $ forAll genRegulatoryHistory >>= \s -> cover 1 "NoRegulatoryAction" (has noRegulatoryAction s) >> cover 1 "RegulatoryActionTaken" (has regulatoryActionTaken s))]
    , prismLaws "RegulatoryHistory'.noRegulatoryAction" (noRegulatoryAction :: APrism' RegulatoryHistory ()) genRegulatoryHistory (pure ())
    , prismLaws "RegulatoryHistory'.regulatoryActionTaken" (regulatoryActionTaken :: APrism' RegulatoryHistory RegulatoryAction) genRegulatoryHistory genRegulatoryAction
    , [("lawNamesDeclarant'", property $ forAll genDeclarant >>= \s -> lawNamesDeclarant' s === s)]
    , lensLaws "Declarant'.fullName" (fullName :: ALens' Declarant FormLine) genDeclarant genFormText
    , lensLaws "Declarant'.role" (role :: ALens' Declarant FormLine) genDeclarant genFormText
    , [("lawNamesDeclaration'", property $ forAll genDeclaration >>= \s -> lawNamesDeclaration' s === s)]
    , [("coverage Declaration", withTests 100 . property $ forAll genDeclaration >>= \s -> cover 1 "DeclaredByCEO" (has declaredByCEO s) >> cover 1 "DeclaredByResponsibleManager" (has declaredByResponsibleManager s) >> cover 1 "DeclaredByAgent" (has declaredByAgent s) >> cover 1 "DeclaredByOther" (has declaredByOther s))]
    , prismLaws "Declaration'.declaredByCEO" (declaredByCEO :: APrism' Declaration ()) genDeclaration (pure ())
    , prismLaws "Declaration'.declaredByResponsibleManager" (declaredByResponsibleManager :: APrism' Declaration FormLine) genDeclaration genFormText
    , prismLaws "Declaration'.declaredByAgent" (declaredByAgent :: APrism' Declaration FormLine) genDeclaration genFormText
    , prismLaws "Declaration'.declaredByOther" (declaredByOther :: APrism' Declaration Declarant) genDeclaration genDeclarant
    , [("lawNamesWrittenSignature'", property $ forAll genWrittenSignature >>= \s -> lawNamesWrittenSignature' s === s)]
    , [("coverage WrittenSignature", withTests 100 . property $ forAll genWrittenSignature >>= \s -> cover 1 "WrittenSignatureImage" (has writtenSignatureImage s) >> cover 1 "WrittenSignatureFile" (has writtenSignatureFile s))]
    , prismLaws "WrittenSignature'.writtenSignatureImage" (writtenSignatureImage :: APrism' WrittenSignature ByteString) genWrittenSignature genByteString
    , prismLaws "WrittenSignature'.writtenSignatureFile" (writtenSignatureFile :: APrism' WrittenSignature FilePath) genWrittenSignature genFilePath
    , [("lawNamesApplicationForm'", property $ forAll genApplicationForm >>= \s -> lawNamesApplicationForm' s === s)]
    , lensLaws "ApplicationForm'.primaryContact" (primaryContact :: ALens' ApplicationForm PrimaryContact) genApplicationForm genPrimaryContact
    , lensLaws "ApplicationForm'.personnelHistory" (personnelHistory :: ALens' ApplicationForm PersonnelHistory) genApplicationForm genPersonnelHistory
    , lensLaws "ApplicationForm'.regulatoryHistory" (regulatoryHistory :: ALens' ApplicationForm RegulatoryHistory) genApplicationForm genRegulatoryHistory
    , lensLaws "ApplicationForm'.proceduresLibrary" (proceduresLibrary :: ALens' ApplicationForm Bool) genApplicationForm Gen.bool
    , lensLaws "ApplicationForm'.otherDocuments" (otherDocuments :: ALens' ApplicationForm (AtMost 6 FormLine)) genApplicationForm (genAtMost genFormText)
    , lensLaws "ApplicationForm'.declaration" (declaration :: ALens' ApplicationForm Declaration) genApplicationForm genDeclaration
    , lensLaws "ApplicationForm'.signature" (signature :: ALens' ApplicationForm (Maybe WrittenSignature)) genApplicationForm (Gen.maybe genWrittenSignature)
    , [("lawNamesVersion'", property $ forAll genVersion >>= \s -> lawNamesVersion' s === s)]
    , lensLaws "Version'.majorVersion" (majorVersion :: ALens' Version Natural) genVersion genNatural
    , lensLaws "Version'.minorVersion" (minorVersion :: ALens' Version Natural) genVersion genNatural
    , [("lawNamesFirstIssue'", property $ forAll genFirstIssue >>= \s -> lawNamesFirstIssue' s === s)]
    , lensLaws "FirstIssue'.version" (version :: ALens' FirstIssue Version) genFirstIssue genVersion
    , lensLaws "FirstIssue'.issueDate" (issueDate :: ALens' FirstIssue Month) genFirstIssue genMonth
    , lensLaws "FirstIssue'.effective" (effective :: ALens' FirstIssue Text1) genFirstIssue genText1
    , lensLaws "FirstIssue'.parts" (parts :: ALens' FirstIssue Text1) genFirstIssue genText1
    , lensLaws "FirstIssue'.details" (details :: ALens' FirstIssue Text1) genFirstIssue genText1
    , [("lawNamesRevision'", property $ forAll genRevision >>= \s -> lawNamesRevision' s === s)]
    , lensLaws "Revision'.versionIncrement" (versionIncrement :: ALens' Revision VersionChange) genRevision genVersionChange
    , lensLaws "Revision'.monthsAfter" (monthsAfter :: ALens' Revision Natural) genRevision genNatural
    , lensLaws "Revision'.effective" (effective :: ALens' Revision Text1) genRevision genText1
    , lensLaws "Revision'.parts" (parts :: ALens' Revision Text1) genRevision genText1
    , lensLaws "Revision'.details" (details :: ALens' Revision Text1) genRevision genText1
    , [("lawNamesPolicies'", property $ forAll genPolicies >>= \s -> lawNamesPolicies' s === s)]
    , lensLaws "Policies'.recencyFlights" (recencyFlights :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.recencyDays" (recencyDays :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.refresherMonths" (refresherMonths :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.alcoholHours" (alcoholHours :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.restHours" (restHours :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.dutyHours" (dutyHours :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.inspectionMonths" (inspectionMonths :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.inspectionHours" (inspectionHours :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.batteryReserve" (batteryReserve :: ALens' Policies Percentage) genPolicies genPercentage
    , lensLaws "Policies'.backupFrequency" (backupFrequency :: ALens' Policies BackupInterval) genPolicies genBackupInterval
    , lensLaws "Policies'.independentReviewYears" (independentReviewYears :: ALens' Policies Positive) genPolicies genPositive
    , lensLaws "Policies'.checkingMonths" (checkingMonths :: ALens' Policies Positive) genPolicies genPositive
    , [("lawNamesRiskAssessment'", property $ forAll genRiskAssessment >>= \s -> lawNamesRiskAssessment' s === s)]
    , lensLaws "RiskAssessment'.riskLikelihood" (riskLikelihood :: ALens' RiskAssessment Likelihood) genRiskAssessment genLikelihood
    , lensLaws "RiskAssessment'.riskConsequence" (riskConsequence :: ALens' RiskAssessment Consequence) genRiskAssessment genConsequence
    , [("lawNamesRisk'", property $ forAll genRisk >>= \s -> lawNamesRisk' s === s)]
    , lensLaws "Risk'.hazard" (hazard :: ALens' Risk Text1) genRisk genText1
    , lensLaws "Risk'.riskDescription" (riskDescription :: ALens' Risk Text1) genRisk genText1
    , lensLaws "Risk'.existingControls" (existingControls :: ALens' Risk Text1) genRisk genText1
    , lensLaws "Risk'.initialRisk" (initialRisk :: ALens' Risk RiskAssessment) genRisk genRiskAssessment
    , lensLaws "Risk'.additionalControls" (additionalControls :: ALens' Risk Text1) genRisk genText1
    , lensLaws "Risk'.residualRisk" (residualRisk :: ALens' Risk RiskAssessment) genRisk genRiskAssessment
    , lensLaws "Risk'.riskOwner" (riskOwner :: ALens' Risk KeyPosition) genRisk genKeyPosition
    , lensLaws "Risk'.dateEntered" (dateEntered :: ALens' Risk Month) genRisk genMonth
    , lensLaws "Risk'.reviewMonths" (reviewMonths :: ALens' Risk ReviewMonths) genRisk genReviewMonths
    , [("lawNamesOperationsManual'", property $ forAll genOperationsManual >>= \s -> lawNamesOperationsManual' s === s)]
    , lensLaws "OperationsManual'.firstIssue" (firstIssue :: ALens' OperationsManual FirstIssue) genOperationsManual genFirstIssue
    , lensLaws "OperationsManual'.revisions" (revisions :: ALens' OperationsManual [Revision]) genOperationsManual (Gen.list (Range.linear 0 2) genRevision)
    , lensLaws "OperationsManual'.services" (services :: ALens' OperationsManual (NonEmpty Text1)) genOperationsManual (Gen.nonEmpty (Range.linear 1 2) genText1)
    , lensLaws "OperationsManual'.policies" (policies :: ALens' OperationsManual Policies) genOperationsManual genPolicies
    , lensLaws "OperationsManual'.riskRegister" (riskRegister :: ALens' OperationsManual (NonEmpty Risk)) genOperationsManual (Gen.nonEmpty (Range.linear 1 2) genRisk)
    , lensLaws "OperationsManual'.crew" (crew :: ALens' OperationsManual Crewing) genOperationsManual genCrewing
    , lensLaws "OperationsManual'.pilots" (pilots :: ALens' OperationsManual RemotePilots) genOperationsManual genRemotePilots
    , [("lawNamesCRINominee'", property $ forAll genCRINominee >>= \s -> lawNamesCRINominee' s === s)]
    , [("coverage CRINominee", withTests 100 . property $ forAll genCRINominee >>= \s -> cover 1 "CRIIsCEO" (has criIsCEO s) >> cover 1 "CRIIsCRP" (has criIsCRP s) >> cover 1 "CRIIsMC" (has criIsMC s) >> cover 1 "CRINominated" (has criNominated s))]
    , prismLaws "CRINominee'.criIsCEO" (criIsCEO :: APrism' CRINominee ()) genCRINominee (pure ())
    , prismLaws "CRINominee'.criIsCRP" (criIsCRP :: APrism' CRINominee ()) genCRINominee (pure ())
    , prismLaws "CRINominee'.criIsMC" (criIsMC :: APrism' CRINominee ()) genCRINominee (pure ())
    , prismLaws "CRINominee'.criNominated" (criNominated :: APrism' CRINominee Nominee) genCRINominee genNominee
    , [("lawNamesRePLHolding'", property $ forAll genRePLHolding >>= \s -> lawNamesRePLHolding' s === s)]
    , [("coverage RePLHolding", withTests 100 . property $ forAll genRePLHolding >>= \s -> cover 1 "HoldsRePLForEachType" (has holdsRePLForEachType s) >> cover 1 "RePLHoldingIntent" (has rePLHoldingIntent s))]
    , prismLaws "RePLHolding'.holdsRePLForEachType" (holdsRePLForEachType :: APrism' RePLHolding ()) genRePLHolding (pure ())
    , prismLaws "RePLHolding'.rePLHoldingIntent" (rePLHoldingIntent :: APrism' RePLHolding (FormText 'Wide 185 5)) genRePLHolding genFormText
    , [("lawNamesTeachingQualification'", property $ forAll genTeachingQualification >>= \s -> lawNamesTeachingQualification' s === s)]
    , [("coverage TeachingQualification", withTests 100 . property $ forAll genTeachingQualification >>= \s -> cover 1 "TeachingQualificationHeld" (has teachingQualificationHeld s) >> cover 1 "TeachingQualificationIntent" (has teachingQualificationIntent s))]
    , prismLaws "TeachingQualification'.teachingQualificationHeld" (teachingQualificationHeld :: APrism' TeachingQualification (FormLines 5)) genTeachingQualification genFormText
    , prismLaws "TeachingQualification'.teachingQualificationIntent" (teachingQualificationIntent :: APrism' TeachingQualification (FormText 'Wide 185 5)) genTeachingQualification genFormText
    , [("lawNamesOperationalExperience'", property $ forAll genOperationalExperience >>= \s -> lawNamesOperationalExperience' s === s)]
    , [("coverage OperationalExperience", withTests 100 . property $ forAll genOperationalExperience >>= \s -> cover 1 "HasOperationalExperience" (has hasOperationalExperience s) >> cover 1 "OperationalExperienceIntent" (has operationalExperienceIntent s) >> cover 1 "OperationalExperienceNotApplicable" (has operationalExperienceNotApplicable s))]
    , prismLaws "OperationalExperience'.hasOperationalExperience" (hasOperationalExperience :: APrism' OperationalExperience ()) genOperationalExperience (pure ())
    , prismLaws "OperationalExperience'.operationalExperienceIntent" (operationalExperienceIntent :: APrism' OperationalExperience (FormText 'Wide 185 5)) genOperationalExperience genFormText
    , prismLaws "OperationalExperience'.operationalExperienceNotApplicable" (operationalExperienceNotApplicable :: APrism' OperationalExperience ()) genOperationalExperience (pure ())
    , [("lawNamesTrainingCourse'", property $ forAll genTrainingCourse >>= \s -> lawNamesTrainingCourse' s === s)]
    , lensLaws "TrainingCourse'.courseKind" (courseKind :: ALens' TrainingCourse CourseType) genTrainingCourse genCourseType
    , lensLaws "TrainingCourse'.trainingRPA" (trainingRPA :: ALens' TrainingCourse OperatedType) genTrainingCourse genOperatedType
    , lensLaws "TrainingCourse'.complexities" (complexities :: ALens' TrainingCourse (NonEmpty Complexity)) genTrainingCourse (Gen.nonEmpty (Range.linear 1 2) genComplexity)
    , [("lawNamesTrainingArrangements'", property $ forAll genTrainingArrangements >>= \s -> lawNamesTrainingArrangements' s === s)]
    , lensLaws "TrainingArrangements'.theoryVenues" (theoryVenues :: ALens' TrainingArrangements (NonEmpty Text1)) genTrainingArrangements (Gen.nonEmpty (Range.linear 1 2) genText1)
    , lensLaws "TrainingArrangements'.practicalAreas" (practicalAreas :: ALens' TrainingArrangements (NonEmpty Text1)) genTrainingArrangements (Gen.nonEmpty (Range.linear 1 2) genText1)
    , lensLaws "TrainingArrangements'.maxStudentsPerCourse" (maxStudentsPerCourse :: ALens' TrainingArrangements Positive) genTrainingArrangements genPositive
    , lensLaws "TrainingArrangements'.maxStudentsPerInstructor" (maxStudentsPerInstructor :: ALens' TrainingArrangements Positive) genTrainingArrangements genPositive
    , lensLaws "TrainingArrangements'.takeover" (takeover :: ALens' TrainingArrangements InstructorTakeover) genTrainingArrangements genInstructorTakeover
    , lensLaws "TrainingArrangements'.theory" (theory :: ALens' TrainingArrangements TheoryDelivery) genTrainingArrangements genTheoryDelivery
    , lensLaws "TrainingArrangements'.exam" (exam :: ALens' TrainingArrangements ExamDelivery) genTrainingArrangements genExamDelivery
    , lensLaws "TrainingArrangements'.examPassMark" (examPassMark :: ALens' TrainingArrangements PassMark) genTrainingArrangements genPassMark
    , lensLaws "TrainingArrangements'.examiner" (examiner :: ALens' TrainingArrangements FlightTestExaminer) genTrainingArrangements genFlightTestExaminer
    , lensLaws "TrainingArrangements'.simulator" (simulator :: ALens' TrainingArrangements (Maybe Text1)) genTrainingArrangements (Gen.maybe genText1)
    , [("lawNamesTrainingMaterial'", property $ forAll genTrainingMaterial >>= \s -> lawNamesTrainingMaterial' s === s)]
    , lensLaws "TrainingMaterial'.criNominee" (criNominee :: ALens' TrainingMaterial CRINominee) genTrainingMaterial genCRINominee
    , lensLaws "TrainingMaterial'.rePLHolding" (rePLHolding :: ALens' TrainingMaterial RePLHolding) genTrainingMaterial genRePLHolding
    , lensLaws "TrainingMaterial'.teachingQualification" (teachingQualification :: ALens' TrainingMaterial TeachingQualification) genTrainingMaterial genTeachingQualification
    , lensLaws "TrainingMaterial'.operationalExperience" (operationalExperience :: ALens' TrainingMaterial OperationalExperience) genTrainingMaterial genOperationalExperience
    , lensLaws "TrainingMaterial'.criOtherReOCRoles" (criOtherReOCRoles :: ALens' TrainingMaterial OtherReOCRoles) genTrainingMaterial genOtherReOCRoles
    , lensLaws "TrainingMaterial'.trainingCourses" (trainingCourses :: ALens' TrainingMaterial (Some 9 TrainingCourse)) genTrainingMaterial (genSome genTrainingCourse)
    , lensLaws "TrainingMaterial'.trainingArrangements" (trainingArrangements :: ALens' TrainingMaterial TrainingArrangements) genTrainingMaterial genTrainingArrangements
    , [("lawNamesReOC'", property $ forAll genReOC >>= \s -> lawNamesReOC' s === s)]
    , lensLaws "ReOC'.operator" (operator :: ALens' ReOC Operator) genReOC genOperator
    , lensLaws "ReOC'.applicationForm" (applicationForm :: ALens' ReOC ApplicationForm) genReOC genApplicationForm
    , lensLaws "ReOC'.operationsManual" (operationsManual :: ALens' ReOC OperationsManual) genReOC genOperationsManual
    , lensLaws "ReOC'.maybeTrainingMaterial" (maybeTrainingMaterial :: ALens' ReOC (Maybe TrainingMaterial)) genReOC (Gen.maybe genTrainingMaterial)
    , [("lawNamesField", property $ forAll genField >>= \s -> lawNamesField s === s)]
    , [("coverage Field", withTests 5340 . property $ forAll genField >>= \s -> cover 0.17 "PersonFullName" (has personFullName s) >> cover 0.17 "PersonArn" (has personArn s) >> cover 0.17 "PersonPhoneNumber" (has personPhoneNumber s) >> cover 0.17 "PersonEmailAddress" (has personEmailAddress s) >> cover 0.17 "AddressStreetAddress" (has addressStreetAddress s) >> cover 0.17 "AddressSuburb" (has addressSuburb s) >> cover 0.17 "AddressStateOrTerritory" (has addressStateOrTerritory s) >> cover 0.17 "AddressPostcode" (has addressPostcode s) >> cover 0.17 "OperationalHeadquartersAtRegisteredOffice" (has operationalHeadquartersAtRegisteredOffice s) >> cover 0.17 "OperationalHeadquartersOperationalHeadquartersAddress" (has operationalHeadquartersOperationalHeadquartersAddress s) >> cover 0.17 "CompanyCompanyName" (has companyCompanyName s) >> cover 0.17 "CompanyAbn" (has companyAbn s) >> cover 0.17 "CompanyArn" (has companyArn s) >> cover 0.17 "CompanyRegisteredOffice" (has companyRegisteredOffice s) >> cover 0.17 "CompanyOperationalHeadquarters" (has companyOperationalHeadquarters s) >> cover 0.17 "CompanyPhoneNumber" (has companyPhoneNumber s) >> cover 0.17 "CompanyEmailAddress" (has companyEmailAddress s) >> cover 0.17 "CompanyBusinessName" (has companyBusinessName s) >> cover 0.17 "FlightTerminationNoFlightTerminationSystem" (has flightTerminationNoFlightTerminationSystem s) >> cover 0.17 "FlightTerminationFlightTerminationSystem" (has flightTerminationFlightTerminationSystem s) >> cover 0.17 "EmergencyActionSituation" (has emergencyActionSituation s) >> cover 0.17 "EmergencyActionResponse" (has emergencyActionResponse s) >> cover 0.17 "EmergencyActionActionSteps" (has emergencyActionActionSteps s) >> cover 0.17 "RPATypeRpaMake" (has rpaTypeRpaMake s) >> cover 0.17 "RPATypeRpaModel" (has rpaTypeRpaModel s) >> cover 0.17 "RPATypeShortName" (has rpaTypeShortName s) >> cover 0.17 "RPATypeCategory" (has rpaTypeCategory s) >> cover 0.17 "RPATypeMaximumGrossWeight" (has rpaTypeMaximumGrossWeight s) >> cover 0.17 "RPATypeUserManual" (has rpaTypeUserManual s) >> cover 0.17 "RPATypeTransponderCarriage" (has rpaTypeTransponderCarriage s) >> cover 0.17 "RPATypeFlightTermination" (has rpaTypeFlightTermination s) >> cover 0.17 "RPATypeInspectionItems" (has rpaTypeInspectionItems s) >> cover 0.17 "RPATypeBeforeFlight" (has rpaTypeBeforeFlight s) >> cover 0.17 "RPATypeBatteryWarnings" (has rpaTypeBatteryWarnings s) >> cover 0.17 "RPATypeEmergencyActions" (has rpaTypeEmergencyActions s) >> cover 0.17 "EquipmentEquipmentDescription" (has equipmentEquipmentDescription s) >> cover 0.17 "EquipmentSerialNumber" (has equipmentSerialNumber s) >> cover 0.17 "AircraftSerialNumber" (has aircraftSerialNumber s) >> cover 0.17 "AircraftAssociatedEquipment" (has aircraftAssociatedEquipment s) >> cover 0.17 "OperatedTypeRpaType" (has operatedTypeRpaType s) >> cover 0.17 "OperatedTypeAirframes" (has operatedTypeAirframes s) >> cover 0.17 "RePLOriginPplTheory" (has rePLOriginPplTheory s) >> cover 0.17 "RePLOriginRePLTrainingOrganisation" (has rePLOriginRePLTrainingOrganisation s) >> cover 0.17 "OtherReOCRolesNoOtherReOCRoles" (has otherReOCRolesNoOtherReOCRoles s) >> cover 0.17 "OtherReOCRolesOtherReOCRolesHeld" (has otherReOCRolesOtherReOCRolesHeld s) >> cover 0.17 "NomineePerson" (has nomineePerson s) >> cover 0.17 "NomineeOtherQualifications" (has nomineeOtherQualifications s) >> cover 0.17 "NomineeAviationExperience" (has nomineeAviationExperience s) >> cover 0.17 "ChiefExecutiveNominee" (has chiefExecutiveNominee s) >> cover 0.17 "ChiefExecutiveDirectorStatus" (has chiefExecutiveDirectorStatus s) >> cover 0.17 "ChiefExecutiveManagementExperience" (has chiefExecutiveManagementExperience s) >> cover 0.17 "CRPNomineeCrpIsCEO" (has crpNomineeCrpIsCEO s) >> cover 0.17 "CRPNomineeCrpNominated" (has crpNomineeCrpNominated s) >> cover 0.17 "ChiefPilotCrpNominee" (has chiefPilotCrpNominee s) >> cover 0.17 "ChiefPilotRePLOrigin" (has chiefPilotRePLOrigin s) >> cover 0.17 "ChiefPilotRpaHistory" (has chiefPilotRpaHistory s) >> cover 0.17 "ChiefPilotOtherReOCRoles" (has chiefPilotOtherReOCRoles s) >> cover 0.17 "ChiefPilotRadio" (has chiefPilotRadio s) >> cover 0.17 "MCNomineeMcIsCEO" (has mcNomineeMcIsCEO s) >> cover 0.17 "MCNomineeMcIsCRP" (has mcNomineeMcIsCRP s) >> cover 0.17 "MCNomineeMcNominated" (has mcNomineeMcNominated s) >> cover 0.17 "KeyPersonnelChiefExecutive" (has keyPersonnelChiefExecutive s) >> cover 0.17 "KeyPersonnelChiefPilot" (has keyPersonnelChiefPilot s) >> cover 0.17 "KeyPersonnelMcNominee" (has keyPersonnelMcNominee s) >> cover 0.17 "OperatorCompany" (has operatorCompany s) >> cover 0.17 "OperatorKeyPersonnel" (has operatorKeyPersonnel s) >> cover 0.17 "OperatorFleet" (has operatorFleet s) >> cover 0.17 "ContactPersonFullName" (has contactPersonFullName s) >> cover 0.17 "ContactPersonPosition" (has contactPersonPosition s) >> cover 0.17 "ContactPersonPhoneNumber" (has contactPersonPhoneNumber s) >> cover 0.17 "ContactPersonEmailAddress" (has contactPersonEmailAddress s) >> cover 0.17 "PrimaryContactApplicantIsPrimaryContact" (has primaryContactApplicantIsPrimaryContact s) >> cover 0.17 "PrimaryContactPrimaryContactPerson" (has primaryContactPrimaryContactPerson s) >> cover 0.17 "HistoryAnswerNoHistory" (has historyAnswerNoHistory s) >> cover 0.17 "HistoryAnswerHistoryDisclosed" (has historyAnswerHistoryDisclosed s) >> cover 0.17 "PersonnelHistoryActionTaken" (has personnelHistoryActionTaken s) >> cover 0.17 "PersonnelHistoryTransportLicenceRefused" (has personnelHistoryTransportLicenceRefused s) >> cover 0.17 "PersonnelHistoryCriminalConviction" (has personnelHistoryCriminalConviction s) >> cover 0.17 "PersonnelHistorySuspensionPending" (has personnelHistorySuspensionPending s) >> cover 0.17 "RegulatoryActionReocSuspendedOrCancelled" (has regulatoryActionReocSuspendedOrCancelled s) >> cover 0.17 "RegulatoryActionTypeOfAction" (has regulatoryActionTypeOfAction s) >> cover 0.17 "RegulatoryActionAuthorisationAction" (has regulatoryActionAuthorisationAction s) >> cover 0.17 "RegulatoryActionActionDate" (has regulatoryActionActionDate s) >> cover 0.17 "RegulatoryActionActionDetails" (has regulatoryActionActionDetails s) >> cover 0.17 "RegulatoryHistoryNoRegulatoryAction" (has regulatoryHistoryNoRegulatoryAction s) >> cover 0.17 "RegulatoryHistoryRegulatoryActionTaken" (has regulatoryHistoryRegulatoryActionTaken s) >> cover 0.17 "DeclarantFullName" (has declarantFullName s) >> cover 0.17 "DeclarantRole" (has declarantRole s) >> cover 0.17 "DeclarationDeclaredByCEO" (has declarationDeclaredByCEO s) >> cover 0.17 "DeclarationDeclaredByResponsibleManager" (has declarationDeclaredByResponsibleManager s) >> cover 0.17 "DeclarationDeclaredByAgent" (has declarationDeclaredByAgent s) >> cover 0.17 "DeclarationDeclaredByOther" (has declarationDeclaredByOther s) >> cover 0.17 "WrittenSignatureWrittenSignatureImage" (has writtenSignatureWrittenSignatureImage s) >> cover 0.17 "WrittenSignatureWrittenSignatureFile" (has writtenSignatureWrittenSignatureFile s) >> cover 0.17 "ApplicationFormPrimaryContact" (has applicationFormPrimaryContact s) >> cover 0.17 "ApplicationFormPersonnelHistory" (has applicationFormPersonnelHistory s) >> cover 0.17 "ApplicationFormRegulatoryHistory" (has applicationFormRegulatoryHistory s) >> cover 0.17 "ApplicationFormProceduresLibrary" (has applicationFormProceduresLibrary s) >> cover 0.17 "ApplicationFormOtherDocuments" (has applicationFormOtherDocuments s) >> cover 0.17 "ApplicationFormDeclaration" (has applicationFormDeclaration s) >> cover 0.17 "ApplicationFormSignature" (has applicationFormSignature s) >> cover 0.17 "VersionMajorVersion" (has versionMajorVersion s) >> cover 0.17 "VersionMinorVersion" (has versionMinorVersion s) >> cover 0.17 "FirstIssueVersion" (has firstIssueVersion s) >> cover 0.17 "FirstIssueIssueDate" (has firstIssueIssueDate s) >> cover 0.17 "FirstIssueEffective" (has firstIssueEffective s) >> cover 0.17 "FirstIssueParts" (has firstIssueParts s) >> cover 0.17 "FirstIssueDetails" (has firstIssueDetails s) >> cover 0.17 "RevisionVersionIncrement" (has revisionVersionIncrement s) >> cover 0.17 "RevisionMonthsAfter" (has revisionMonthsAfter s) >> cover 0.17 "RevisionEffective" (has revisionEffective s) >> cover 0.17 "RevisionParts" (has revisionParts s) >> cover 0.17 "RevisionDetails" (has revisionDetails s) >> cover 0.17 "PoliciesRecencyFlights" (has policiesRecencyFlights s) >> cover 0.17 "PoliciesRecencyDays" (has policiesRecencyDays s) >> cover 0.17 "PoliciesRefresherMonths" (has policiesRefresherMonths s) >> cover 0.17 "PoliciesAlcoholHours" (has policiesAlcoholHours s) >> cover 0.17 "PoliciesRestHours" (has policiesRestHours s) >> cover 0.17 "PoliciesDutyHours" (has policiesDutyHours s) >> cover 0.17 "PoliciesInspectionMonths" (has policiesInspectionMonths s) >> cover 0.17 "PoliciesInspectionHours" (has policiesInspectionHours s) >> cover 0.17 "PoliciesBatteryReserve" (has policiesBatteryReserve s) >> cover 0.17 "PoliciesBackupFrequency" (has policiesBackupFrequency s) >> cover 0.17 "PoliciesIndependentReviewYears" (has policiesIndependentReviewYears s) >> cover 0.17 "PoliciesCheckingMonths" (has policiesCheckingMonths s) >> cover 0.17 "RiskAssessmentRiskLikelihood" (has riskAssessmentRiskLikelihood s) >> cover 0.17 "RiskAssessmentRiskConsequence" (has riskAssessmentRiskConsequence s) >> cover 0.17 "RiskHazard" (has riskHazard s) >> cover 0.17 "RiskRiskDescription" (has riskRiskDescription s) >> cover 0.17 "RiskExistingControls" (has riskExistingControls s) >> cover 0.17 "RiskInitialRisk" (has riskInitialRisk s) >> cover 0.17 "RiskAdditionalControls" (has riskAdditionalControls s) >> cover 0.17 "RiskResidualRisk" (has riskResidualRisk s) >> cover 0.17 "RiskRiskOwner" (has riskRiskOwner s) >> cover 0.17 "RiskDateEntered" (has riskDateEntered s) >> cover 0.17 "RiskReviewMonths" (has riskReviewMonths s) >> cover 0.17 "OperationsManualFirstIssue" (has operationsManualFirstIssue s) >> cover 0.17 "OperationsManualRevisions" (has operationsManualRevisions s) >> cover 0.17 "OperationsManualServices" (has operationsManualServices s) >> cover 0.17 "OperationsManualPolicies" (has operationsManualPolicies s) >> cover 0.17 "OperationsManualRiskRegister" (has operationsManualRiskRegister s) >> cover 0.17 "OperationsManualCrew" (has operationsManualCrew s) >> cover 0.17 "OperationsManualPilots" (has operationsManualPilots s) >> cover 0.17 "CRINomineeCriIsCEO" (has criNomineeCriIsCEO s) >> cover 0.17 "CRINomineeCriIsCRP" (has criNomineeCriIsCRP s) >> cover 0.17 "CRINomineeCriIsMC" (has criNomineeCriIsMC s) >> cover 0.17 "CRINomineeCriNominated" (has criNomineeCriNominated s) >> cover 0.17 "RePLHoldingHoldsRePLForEachType" (has rePLHoldingHoldsRePLForEachType s) >> cover 0.17 "RePLHoldingRePLHoldingIntent" (has rePLHoldingRePLHoldingIntent s) >> cover 0.17 "TeachingQualificationTeachingQualificationHeld" (has teachingQualificationTeachingQualificationHeld s) >> cover 0.17 "TeachingQualificationTeachingQualificationIntent" (has teachingQualificationTeachingQualificationIntent s) >> cover 0.17 "OperationalExperienceHasOperationalExperience" (has operationalExperienceHasOperationalExperience s) >> cover 0.17 "OperationalExperienceOperationalExperienceIntent" (has operationalExperienceOperationalExperienceIntent s) >> cover 0.17 "OperationalExperienceOperationalExperienceNotApplicable" (has operationalExperienceOperationalExperienceNotApplicable s) >> cover 0.17 "TrainingCourseCourseKind" (has trainingCourseCourseKind s) >> cover 0.17 "TrainingCourseTrainingRPA" (has trainingCourseTrainingRPA s) >> cover 0.17 "TrainingCourseComplexities" (has trainingCourseComplexities s) >> cover 0.17 "TrainingArrangementsTheoryVenues" (has trainingArrangementsTheoryVenues s) >> cover 0.17 "TrainingArrangementsPracticalAreas" (has trainingArrangementsPracticalAreas s) >> cover 0.17 "TrainingArrangementsMaxStudentsPerCourse" (has trainingArrangementsMaxStudentsPerCourse s) >> cover 0.17 "TrainingArrangementsMaxStudentsPerInstructor" (has trainingArrangementsMaxStudentsPerInstructor s) >> cover 0.17 "TrainingArrangementsTakeover" (has trainingArrangementsTakeover s) >> cover 0.17 "TrainingArrangementsTheory" (has trainingArrangementsTheory s) >> cover 0.17 "TrainingArrangementsExam" (has trainingArrangementsExam s) >> cover 0.17 "TrainingArrangementsExamPassMark" (has trainingArrangementsExamPassMark s) >> cover 0.17 "TrainingArrangementsExaminer" (has trainingArrangementsExaminer s) >> cover 0.17 "TrainingArrangementsSimulator" (has trainingArrangementsSimulator s) >> cover 0.17 "TrainingMaterialCriNominee" (has trainingMaterialCriNominee s) >> cover 0.17 "TrainingMaterialRePLHolding" (has trainingMaterialRePLHolding s) >> cover 0.17 "TrainingMaterialTeachingQualification" (has trainingMaterialTeachingQualification s) >> cover 0.17 "TrainingMaterialOperationalExperience" (has trainingMaterialOperationalExperience s) >> cover 0.17 "TrainingMaterialCriOtherReOCRoles" (has trainingMaterialCriOtherReOCRoles s) >> cover 0.17 "TrainingMaterialTrainingCourses" (has trainingMaterialTrainingCourses s) >> cover 0.17 "TrainingMaterialTrainingArrangements" (has trainingMaterialTrainingArrangements s) >> cover 0.17 "ReOCOperator" (has reOCOperator s) >> cover 0.17 "ReOCApplicationForm" (has reOCApplicationForm s) >> cover 0.17 "ReOCOperationsManual" (has reOCOperationsManual s) >> cover 0.17 "ReOCMaybeTrainingMaterial" (has reOCMaybeTrainingMaterial s))]
    , prismLaws "Field.personFullName" (personFullName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personArn" (personArn :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personPhoneNumber" (personPhoneNumber :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personEmailAddress" (personEmailAddress :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.addressStreetAddress" (addressStreetAddress :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.addressSuburb" (addressSuburb :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.addressStateOrTerritory" (addressStateOrTerritory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.addressPostcode" (addressPostcode :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationalHeadquartersAtRegisteredOffice" (operationalHeadquartersAtRegisteredOffice :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationalHeadquartersOperationalHeadquartersAddress" (operationalHeadquartersOperationalHeadquartersAddress :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyCompanyName" (companyCompanyName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyAbn" (companyAbn :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyArn" (companyArn :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyRegisteredOffice" (companyRegisteredOffice :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyOperationalHeadquarters" (companyOperationalHeadquarters :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyPhoneNumber" (companyPhoneNumber :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyEmailAddress" (companyEmailAddress :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.companyBusinessName" (companyBusinessName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.flightTerminationNoFlightTerminationSystem" (flightTerminationNoFlightTerminationSystem :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.flightTerminationFlightTerminationSystem" (flightTerminationFlightTerminationSystem :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.emergencyActionSituation" (emergencyActionSituation :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.emergencyActionResponse" (emergencyActionResponse :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.emergencyActionActionSteps" (emergencyActionActionSteps :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeRpaMake" (rpaTypeRpaMake :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeRpaModel" (rpaTypeRpaModel :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeShortName" (rpaTypeShortName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeCategory" (rpaTypeCategory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeMaximumGrossWeight" (rpaTypeMaximumGrossWeight :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeUserManual" (rpaTypeUserManual :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeTransponderCarriage" (rpaTypeTransponderCarriage :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeFlightTermination" (rpaTypeFlightTermination :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeInspectionItems" (rpaTypeInspectionItems :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeBeforeFlight" (rpaTypeBeforeFlight :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeBatteryWarnings" (rpaTypeBatteryWarnings :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rpaTypeEmergencyActions" (rpaTypeEmergencyActions :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.equipmentEquipmentDescription" (equipmentEquipmentDescription :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.equipmentSerialNumber" (equipmentSerialNumber :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.aircraftSerialNumber" (aircraftSerialNumber :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.aircraftAssociatedEquipment" (aircraftAssociatedEquipment :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operatedTypeRpaType" (operatedTypeRpaType :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operatedTypeAirframes" (operatedTypeAirframes :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rePLOriginPplTheory" (rePLOriginPplTheory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rePLOriginRePLTrainingOrganisation" (rePLOriginRePLTrainingOrganisation :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.otherReOCRolesNoOtherReOCRoles" (otherReOCRolesNoOtherReOCRoles :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.otherReOCRolesOtherReOCRolesHeld" (otherReOCRolesOtherReOCRolesHeld :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.nomineePerson" (nomineePerson :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.nomineeOtherQualifications" (nomineeOtherQualifications :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.nomineeAviationExperience" (nomineeAviationExperience :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefExecutiveNominee" (chiefExecutiveNominee :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefExecutiveDirectorStatus" (chiefExecutiveDirectorStatus :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefExecutiveManagementExperience" (chiefExecutiveManagementExperience :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.crpNomineeCrpIsCEO" (crpNomineeCrpIsCEO :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.crpNomineeCrpNominated" (crpNomineeCrpNominated :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefPilotCrpNominee" (chiefPilotCrpNominee :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefPilotRePLOrigin" (chiefPilotRePLOrigin :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefPilotRpaHistory" (chiefPilotRpaHistory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefPilotOtherReOCRoles" (chiefPilotOtherReOCRoles :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.chiefPilotRadio" (chiefPilotRadio :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.mcNomineeMcIsCEO" (mcNomineeMcIsCEO :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.mcNomineeMcIsCRP" (mcNomineeMcIsCRP :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.mcNomineeMcNominated" (mcNomineeMcNominated :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.keyPersonnelChiefExecutive" (keyPersonnelChiefExecutive :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.keyPersonnelChiefPilot" (keyPersonnelChiefPilot :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.keyPersonnelMcNominee" (keyPersonnelMcNominee :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operatorCompany" (operatorCompany :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operatorKeyPersonnel" (operatorKeyPersonnel :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operatorFleet" (operatorFleet :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.contactPersonFullName" (contactPersonFullName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.contactPersonPosition" (contactPersonPosition :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.contactPersonPhoneNumber" (contactPersonPhoneNumber :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.contactPersonEmailAddress" (contactPersonEmailAddress :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.primaryContactApplicantIsPrimaryContact" (primaryContactApplicantIsPrimaryContact :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.primaryContactPrimaryContactPerson" (primaryContactPrimaryContactPerson :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.historyAnswerNoHistory" (historyAnswerNoHistory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.historyAnswerHistoryDisclosed" (historyAnswerHistoryDisclosed :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personnelHistoryActionTaken" (personnelHistoryActionTaken :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personnelHistoryTransportLicenceRefused" (personnelHistoryTransportLicenceRefused :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personnelHistoryCriminalConviction" (personnelHistoryCriminalConviction :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.personnelHistorySuspensionPending" (personnelHistorySuspensionPending :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryActionReocSuspendedOrCancelled" (regulatoryActionReocSuspendedOrCancelled :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryActionTypeOfAction" (regulatoryActionTypeOfAction :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryActionAuthorisationAction" (regulatoryActionAuthorisationAction :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryActionActionDate" (regulatoryActionActionDate :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryActionActionDetails" (regulatoryActionActionDetails :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryHistoryNoRegulatoryAction" (regulatoryHistoryNoRegulatoryAction :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.regulatoryHistoryRegulatoryActionTaken" (regulatoryHistoryRegulatoryActionTaken :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarantFullName" (declarantFullName :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarantRole" (declarantRole :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarationDeclaredByCEO" (declarationDeclaredByCEO :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarationDeclaredByResponsibleManager" (declarationDeclaredByResponsibleManager :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarationDeclaredByAgent" (declarationDeclaredByAgent :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.declarationDeclaredByOther" (declarationDeclaredByOther :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.writtenSignatureWrittenSignatureImage" (writtenSignatureWrittenSignatureImage :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.writtenSignatureWrittenSignatureFile" (writtenSignatureWrittenSignatureFile :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormPrimaryContact" (applicationFormPrimaryContact :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormPersonnelHistory" (applicationFormPersonnelHistory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormRegulatoryHistory" (applicationFormRegulatoryHistory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormProceduresLibrary" (applicationFormProceduresLibrary :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormOtherDocuments" (applicationFormOtherDocuments :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormDeclaration" (applicationFormDeclaration :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.applicationFormSignature" (applicationFormSignature :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.versionMajorVersion" (versionMajorVersion :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.versionMinorVersion" (versionMinorVersion :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.firstIssueVersion" (firstIssueVersion :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.firstIssueIssueDate" (firstIssueIssueDate :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.firstIssueEffective" (firstIssueEffective :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.firstIssueParts" (firstIssueParts :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.firstIssueDetails" (firstIssueDetails :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.revisionVersionIncrement" (revisionVersionIncrement :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.revisionMonthsAfter" (revisionMonthsAfter :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.revisionEffective" (revisionEffective :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.revisionParts" (revisionParts :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.revisionDetails" (revisionDetails :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesRecencyFlights" (policiesRecencyFlights :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesRecencyDays" (policiesRecencyDays :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesRefresherMonths" (policiesRefresherMonths :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesAlcoholHours" (policiesAlcoholHours :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesRestHours" (policiesRestHours :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesDutyHours" (policiesDutyHours :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesInspectionMonths" (policiesInspectionMonths :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesInspectionHours" (policiesInspectionHours :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesBatteryReserve" (policiesBatteryReserve :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesBackupFrequency" (policiesBackupFrequency :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesIndependentReviewYears" (policiesIndependentReviewYears :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.policiesCheckingMonths" (policiesCheckingMonths :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskAssessmentRiskLikelihood" (riskAssessmentRiskLikelihood :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskAssessmentRiskConsequence" (riskAssessmentRiskConsequence :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskHazard" (riskHazard :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskRiskDescription" (riskRiskDescription :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskExistingControls" (riskExistingControls :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskInitialRisk" (riskInitialRisk :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskAdditionalControls" (riskAdditionalControls :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskResidualRisk" (riskResidualRisk :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskRiskOwner" (riskRiskOwner :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskDateEntered" (riskDateEntered :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.riskReviewMonths" (riskReviewMonths :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualFirstIssue" (operationsManualFirstIssue :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualRevisions" (operationsManualRevisions :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualServices" (operationsManualServices :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualPolicies" (operationsManualPolicies :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualRiskRegister" (operationsManualRiskRegister :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualCrew" (operationsManualCrew :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationsManualPilots" (operationsManualPilots :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.criNomineeCriIsCEO" (criNomineeCriIsCEO :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.criNomineeCriIsCRP" (criNomineeCriIsCRP :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.criNomineeCriIsMC" (criNomineeCriIsMC :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.criNomineeCriNominated" (criNomineeCriNominated :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rePLHoldingHoldsRePLForEachType" (rePLHoldingHoldsRePLForEachType :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.rePLHoldingRePLHoldingIntent" (rePLHoldingRePLHoldingIntent :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.teachingQualificationTeachingQualificationHeld" (teachingQualificationTeachingQualificationHeld :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.teachingQualificationTeachingQualificationIntent" (teachingQualificationTeachingQualificationIntent :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationalExperienceHasOperationalExperience" (operationalExperienceHasOperationalExperience :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationalExperienceOperationalExperienceIntent" (operationalExperienceOperationalExperienceIntent :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.operationalExperienceOperationalExperienceNotApplicable" (operationalExperienceOperationalExperienceNotApplicable :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingCourseCourseKind" (trainingCourseCourseKind :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingCourseTrainingRPA" (trainingCourseTrainingRPA :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingCourseComplexities" (trainingCourseComplexities :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsTheoryVenues" (trainingArrangementsTheoryVenues :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsPracticalAreas" (trainingArrangementsPracticalAreas :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsMaxStudentsPerCourse" (trainingArrangementsMaxStudentsPerCourse :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsMaxStudentsPerInstructor" (trainingArrangementsMaxStudentsPerInstructor :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsTakeover" (trainingArrangementsTakeover :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsTheory" (trainingArrangementsTheory :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsExam" (trainingArrangementsExam :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsExamPassMark" (trainingArrangementsExamPassMark :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsExaminer" (trainingArrangementsExaminer :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingArrangementsSimulator" (trainingArrangementsSimulator :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialCriNominee" (trainingMaterialCriNominee :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialRePLHolding" (trainingMaterialRePLHolding :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialTeachingQualification" (trainingMaterialTeachingQualification :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialOperationalExperience" (trainingMaterialOperationalExperience :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialCriOtherReOCRoles" (trainingMaterialCriOtherReOCRoles :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialTrainingCourses" (trainingMaterialTrainingCourses :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.trainingMaterialTrainingArrangements" (trainingMaterialTrainingArrangements :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.reOCOperator" (reOCOperator :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.reOCApplicationForm" (reOCApplicationForm :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.reOCOperationsManual" (reOCOperationsManual :: APrism' Field ()) genField (pure ())
    , prismLaws "Field.reOCMaybeTrainingMaterial" (reOCMaybeTrainingMaterial :: APrism' Field ()) genField (pure ())
    , [("lawNamesInvalidValue", property $ forAll genInvalidValue >>= \s -> lawNamesInvalidValue s === s)]
    , [("coverage InvalidValue", withTests 100 . property $ forAll genInvalidValue >>= \s -> cover 1 "InvalidText1" (has invalidText1 s) >> cover 1 "InvalidFormText" (has invalidFormText s) >> cover 1 "InvalidABN" (has invalidABN s) >> cover 1 "InvalidARN" (has invalidARN s) >> cover 1 "InvalidEmailAddress" (has invalidEmailAddress s) >> cover 1 "InvalidPhoneNumber" (has invalidPhoneNumber s) >> cover 1 "InvalidPostcode" (has invalidPostcode s) >> cover 1 "InvalidPositive" (has invalidPositive s) >> cover 1 "InvalidPercentage" (has invalidPercentage s) >> cover 1 "InvalidGrossWeight" (has invalidGrossWeight s) >> cover 1 "InvalidReviewMonths" (has invalidReviewMonths s) >> cover 1 "InvalidPassMark" (has invalidPassMark s))]
    , prismLaws "InvalidValue.invalidText1" (invalidText1 :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidFormText" (invalidFormText :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidABN" (invalidABN :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidARN" (invalidARN :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidEmailAddress" (invalidEmailAddress :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidPhoneNumber" (invalidPhoneNumber :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidPostcode" (invalidPostcode :: APrism' InvalidValue Text) genInvalidValue genText
    , prismLaws "InvalidValue.invalidPositive" (invalidPositive :: APrism' InvalidValue Natural) genInvalidValue genNatural
    , prismLaws "InvalidValue.invalidPercentage" (invalidPercentage :: APrism' InvalidValue Natural) genInvalidValue genNatural
    , prismLaws "InvalidValue.invalidGrossWeight" (invalidGrossWeight :: APrism' InvalidValue Natural) genInvalidValue genNatural
    , prismLaws "InvalidValue.invalidReviewMonths" (invalidReviewMonths :: APrism' InvalidValue Natural) genInvalidValue genNatural
    , prismLaws "InvalidValue.invalidPassMark" (invalidPassMark :: APrism' InvalidValue Natural) genInvalidValue genNatural
    , [("lawNamesStep", property $ forAll genStep >>= \s -> lawNamesStep s === s)]
    , [("coverage Step", withTests 100 . property $ forAll genStep >>= \s -> cover 1 "StepField" (has field s) >> cover 1 "StepIndex" (has stepIndex s))]
    , prismLaws "Step.field" (field :: APrism' Step Field) genStep genField
    , prismLaws "Step.stepIndex" (stepIndex :: APrism' Step Natural) genStep genNatural
    , prismLaws "Step.personFullName" (personFullName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personArn" (personArn :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personPhoneNumber" (personPhoneNumber :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personEmailAddress" (personEmailAddress :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.addressStreetAddress" (addressStreetAddress :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.addressSuburb" (addressSuburb :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.addressStateOrTerritory" (addressStateOrTerritory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.addressPostcode" (addressPostcode :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationalHeadquartersAtRegisteredOffice" (operationalHeadquartersAtRegisteredOffice :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationalHeadquartersOperationalHeadquartersAddress" (operationalHeadquartersOperationalHeadquartersAddress :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyCompanyName" (companyCompanyName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyAbn" (companyAbn :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyArn" (companyArn :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyRegisteredOffice" (companyRegisteredOffice :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyOperationalHeadquarters" (companyOperationalHeadquarters :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyPhoneNumber" (companyPhoneNumber :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyEmailAddress" (companyEmailAddress :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.companyBusinessName" (companyBusinessName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.flightTerminationNoFlightTerminationSystem" (flightTerminationNoFlightTerminationSystem :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.flightTerminationFlightTerminationSystem" (flightTerminationFlightTerminationSystem :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.emergencyActionSituation" (emergencyActionSituation :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.emergencyActionResponse" (emergencyActionResponse :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.emergencyActionActionSteps" (emergencyActionActionSteps :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeRpaMake" (rpaTypeRpaMake :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeRpaModel" (rpaTypeRpaModel :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeShortName" (rpaTypeShortName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeCategory" (rpaTypeCategory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeMaximumGrossWeight" (rpaTypeMaximumGrossWeight :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeUserManual" (rpaTypeUserManual :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeTransponderCarriage" (rpaTypeTransponderCarriage :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeFlightTermination" (rpaTypeFlightTermination :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeInspectionItems" (rpaTypeInspectionItems :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeBeforeFlight" (rpaTypeBeforeFlight :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeBatteryWarnings" (rpaTypeBatteryWarnings :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rpaTypeEmergencyActions" (rpaTypeEmergencyActions :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.equipmentEquipmentDescription" (equipmentEquipmentDescription :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.equipmentSerialNumber" (equipmentSerialNumber :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.aircraftSerialNumber" (aircraftSerialNumber :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.aircraftAssociatedEquipment" (aircraftAssociatedEquipment :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operatedTypeRpaType" (operatedTypeRpaType :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operatedTypeAirframes" (operatedTypeAirframes :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rePLOriginPplTheory" (rePLOriginPplTheory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rePLOriginRePLTrainingOrganisation" (rePLOriginRePLTrainingOrganisation :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.otherReOCRolesNoOtherReOCRoles" (otherReOCRolesNoOtherReOCRoles :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.otherReOCRolesOtherReOCRolesHeld" (otherReOCRolesOtherReOCRolesHeld :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.nomineePerson" (nomineePerson :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.nomineeOtherQualifications" (nomineeOtherQualifications :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.nomineeAviationExperience" (nomineeAviationExperience :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefExecutiveNominee" (chiefExecutiveNominee :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefExecutiveDirectorStatus" (chiefExecutiveDirectorStatus :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefExecutiveManagementExperience" (chiefExecutiveManagementExperience :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.crpNomineeCrpIsCEO" (crpNomineeCrpIsCEO :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.crpNomineeCrpNominated" (crpNomineeCrpNominated :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefPilotCrpNominee" (chiefPilotCrpNominee :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefPilotRePLOrigin" (chiefPilotRePLOrigin :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefPilotRpaHistory" (chiefPilotRpaHistory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefPilotOtherReOCRoles" (chiefPilotOtherReOCRoles :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.chiefPilotRadio" (chiefPilotRadio :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.mcNomineeMcIsCEO" (mcNomineeMcIsCEO :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.mcNomineeMcIsCRP" (mcNomineeMcIsCRP :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.mcNomineeMcNominated" (mcNomineeMcNominated :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.keyPersonnelChiefExecutive" (keyPersonnelChiefExecutive :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.keyPersonnelChiefPilot" (keyPersonnelChiefPilot :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.keyPersonnelMcNominee" (keyPersonnelMcNominee :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operatorCompany" (operatorCompany :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operatorKeyPersonnel" (operatorKeyPersonnel :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operatorFleet" (operatorFleet :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.contactPersonFullName" (contactPersonFullName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.contactPersonPosition" (contactPersonPosition :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.contactPersonPhoneNumber" (contactPersonPhoneNumber :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.contactPersonEmailAddress" (contactPersonEmailAddress :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.primaryContactApplicantIsPrimaryContact" (primaryContactApplicantIsPrimaryContact :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.primaryContactPrimaryContactPerson" (primaryContactPrimaryContactPerson :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.historyAnswerNoHistory" (historyAnswerNoHistory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.historyAnswerHistoryDisclosed" (historyAnswerHistoryDisclosed :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personnelHistoryActionTaken" (personnelHistoryActionTaken :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personnelHistoryTransportLicenceRefused" (personnelHistoryTransportLicenceRefused :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personnelHistoryCriminalConviction" (personnelHistoryCriminalConviction :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.personnelHistorySuspensionPending" (personnelHistorySuspensionPending :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryActionReocSuspendedOrCancelled" (regulatoryActionReocSuspendedOrCancelled :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryActionTypeOfAction" (regulatoryActionTypeOfAction :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryActionAuthorisationAction" (regulatoryActionAuthorisationAction :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryActionActionDate" (regulatoryActionActionDate :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryActionActionDetails" (regulatoryActionActionDetails :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryHistoryNoRegulatoryAction" (regulatoryHistoryNoRegulatoryAction :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.regulatoryHistoryRegulatoryActionTaken" (regulatoryHistoryRegulatoryActionTaken :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarantFullName" (declarantFullName :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarantRole" (declarantRole :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarationDeclaredByCEO" (declarationDeclaredByCEO :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarationDeclaredByResponsibleManager" (declarationDeclaredByResponsibleManager :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarationDeclaredByAgent" (declarationDeclaredByAgent :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.declarationDeclaredByOther" (declarationDeclaredByOther :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.writtenSignatureWrittenSignatureImage" (writtenSignatureWrittenSignatureImage :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.writtenSignatureWrittenSignatureFile" (writtenSignatureWrittenSignatureFile :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormPrimaryContact" (applicationFormPrimaryContact :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormPersonnelHistory" (applicationFormPersonnelHistory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormRegulatoryHistory" (applicationFormRegulatoryHistory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormProceduresLibrary" (applicationFormProceduresLibrary :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormOtherDocuments" (applicationFormOtherDocuments :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormDeclaration" (applicationFormDeclaration :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.applicationFormSignature" (applicationFormSignature :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.versionMajorVersion" (versionMajorVersion :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.versionMinorVersion" (versionMinorVersion :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.firstIssueVersion" (firstIssueVersion :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.firstIssueIssueDate" (firstIssueIssueDate :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.firstIssueEffective" (firstIssueEffective :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.firstIssueParts" (firstIssueParts :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.firstIssueDetails" (firstIssueDetails :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.revisionVersionIncrement" (revisionVersionIncrement :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.revisionMonthsAfter" (revisionMonthsAfter :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.revisionEffective" (revisionEffective :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.revisionParts" (revisionParts :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.revisionDetails" (revisionDetails :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesRecencyFlights" (policiesRecencyFlights :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesRecencyDays" (policiesRecencyDays :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesRefresherMonths" (policiesRefresherMonths :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesAlcoholHours" (policiesAlcoholHours :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesRestHours" (policiesRestHours :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesDutyHours" (policiesDutyHours :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesInspectionMonths" (policiesInspectionMonths :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesInspectionHours" (policiesInspectionHours :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesBatteryReserve" (policiesBatteryReserve :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesBackupFrequency" (policiesBackupFrequency :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesIndependentReviewYears" (policiesIndependentReviewYears :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.policiesCheckingMonths" (policiesCheckingMonths :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskAssessmentRiskLikelihood" (riskAssessmentRiskLikelihood :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskAssessmentRiskConsequence" (riskAssessmentRiskConsequence :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskHazard" (riskHazard :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskRiskDescription" (riskRiskDescription :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskExistingControls" (riskExistingControls :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskInitialRisk" (riskInitialRisk :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskAdditionalControls" (riskAdditionalControls :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskResidualRisk" (riskResidualRisk :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskRiskOwner" (riskRiskOwner :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskDateEntered" (riskDateEntered :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.riskReviewMonths" (riskReviewMonths :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualFirstIssue" (operationsManualFirstIssue :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualRevisions" (operationsManualRevisions :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualServices" (operationsManualServices :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualPolicies" (operationsManualPolicies :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualRiskRegister" (operationsManualRiskRegister :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualCrew" (operationsManualCrew :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationsManualPilots" (operationsManualPilots :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.criNomineeCriIsCEO" (criNomineeCriIsCEO :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.criNomineeCriIsCRP" (criNomineeCriIsCRP :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.criNomineeCriIsMC" (criNomineeCriIsMC :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.criNomineeCriNominated" (criNomineeCriNominated :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rePLHoldingHoldsRePLForEachType" (rePLHoldingHoldsRePLForEachType :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.rePLHoldingRePLHoldingIntent" (rePLHoldingRePLHoldingIntent :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.teachingQualificationTeachingQualificationHeld" (teachingQualificationTeachingQualificationHeld :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.teachingQualificationTeachingQualificationIntent" (teachingQualificationTeachingQualificationIntent :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationalExperienceHasOperationalExperience" (operationalExperienceHasOperationalExperience :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationalExperienceOperationalExperienceIntent" (operationalExperienceOperationalExperienceIntent :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.operationalExperienceOperationalExperienceNotApplicable" (operationalExperienceOperationalExperienceNotApplicable :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingCourseCourseKind" (trainingCourseCourseKind :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingCourseTrainingRPA" (trainingCourseTrainingRPA :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingCourseComplexities" (trainingCourseComplexities :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsTheoryVenues" (trainingArrangementsTheoryVenues :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsPracticalAreas" (trainingArrangementsPracticalAreas :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsMaxStudentsPerCourse" (trainingArrangementsMaxStudentsPerCourse :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsMaxStudentsPerInstructor" (trainingArrangementsMaxStudentsPerInstructor :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsTakeover" (trainingArrangementsTakeover :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsTheory" (trainingArrangementsTheory :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsExam" (trainingArrangementsExam :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsExamPassMark" (trainingArrangementsExamPassMark :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsExaminer" (trainingArrangementsExaminer :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingArrangementsSimulator" (trainingArrangementsSimulator :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialCriNominee" (trainingMaterialCriNominee :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialRePLHolding" (trainingMaterialRePLHolding :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialTeachingQualification" (trainingMaterialTeachingQualification :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialOperationalExperience" (trainingMaterialOperationalExperience :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialCriOtherReOCRoles" (trainingMaterialCriOtherReOCRoles :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialTrainingCourses" (trainingMaterialTrainingCourses :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.trainingMaterialTrainingArrangements" (trainingMaterialTrainingArrangements :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.reOCOperator" (reOCOperator :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.reOCApplicationForm" (reOCApplicationForm :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.reOCOperationsManual" (reOCOperationsManual :: APrism' Step ()) genStep (pure ())
    , prismLaws "Step.reOCMaybeTrainingMaterial" (reOCMaybeTrainingMaterial :: APrism' Step ()) genStep (pure ())
    , [("lawNamesUnfilled", property $ forAll genUnfilled >>= \s -> lawNamesUnfilled s === s)]
    , lensLaws "Unfilled.path" (path :: ALens' Unfilled [Step]) genUnfilled (Gen.list (Range.linear 0 2) genStep)
    , [("lawNamesInvalid", property $ forAll genInvalid >>= \s -> lawNamesInvalid s === s)]
    , lensLaws "Invalid.path" (path :: ALens' Invalid [Step]) genInvalid (Gen.list (Range.linear 0 2) genStep)
    , lensLaws "Invalid.invalidValue" (invalidValue :: ALens' Invalid InvalidValue) genInvalid genInvalidValue
    , affineLaws "Invalid.invalidText1" (invalidText1 :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidFormText" (invalidFormText :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidABN" (invalidABN :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidARN" (invalidARN :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidEmailAddress" (invalidEmailAddress :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidPhoneNumber" (invalidPhoneNumber :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidPostcode" (invalidPostcode :: Traversal' Invalid Text) genInvalid genText
    , affineLaws "Invalid.invalidPositive" (invalidPositive :: Traversal' Invalid Natural) genInvalid genNatural
    , affineLaws "Invalid.invalidPercentage" (invalidPercentage :: Traversal' Invalid Natural) genInvalid genNatural
    , affineLaws "Invalid.invalidGrossWeight" (invalidGrossWeight :: Traversal' Invalid Natural) genInvalid genNatural
    , affineLaws "Invalid.invalidReviewMonths" (invalidReviewMonths :: Traversal' Invalid Natural) genInvalid genNatural
    , affineLaws "Invalid.invalidPassMark" (invalidPassMark :: Traversal' Invalid Natural) genInvalid genNatural
    , [("lawNamesTooMany", property $ forAll genTooMany >>= \s -> lawNamesTooMany s === s)]
    , lensLaws "TooMany.path" (path :: ALens' TooMany [Step]) genTooMany (Gen.list (Range.linear 0 2) genStep)
    , lensLaws "TooMany.mostElements" (mostElements :: ALens' TooMany Natural) genTooMany genNatural
    , lensLaws "TooMany.givenElements" (givenElements :: ALens' TooMany Natural) genTooMany genNatural
    , [("lawNamesReOCError", property $ forAll genReOCError >>= \s -> lawNamesReOCError s === s)]
    , [("coverage ReOCError", withTests 100 . property $ forAll genReOCError >>= \s -> cover 1 "ReOCErrorUnfilled" (has unfilled s) >> cover 1 "ReOCErrorInvalid" (has invalid s) >> cover 1 "ReOCErrorTooMany" (has tooMany s))]
    , prismLaws "ReOCError.unfilled" (unfilled :: APrism' ReOCError Unfilled) genReOCError genUnfilled
    , prismLaws "ReOCError.invalid" (invalid :: APrism' ReOCError Invalid) genReOCError genInvalid
    , prismLaws "ReOCError.tooMany" (tooMany :: APrism' ReOCError TooMany) genReOCError genTooMany
    , affineLaws "ReOCError.path" (path :: Traversal' ReOCError [Step]) genReOCError (Gen.list (Range.linear 0 2) genStep)
    , affineLaws "ReOCError.invalidValue" (invalidValue :: Traversal' ReOCError InvalidValue) genReOCError genInvalidValue
    , affineLaws "ReOCError.invalidText1" (invalidText1 :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidFormText" (invalidFormText :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidABN" (invalidABN :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidARN" (invalidARN :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidEmailAddress" (invalidEmailAddress :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidPhoneNumber" (invalidPhoneNumber :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidPostcode" (invalidPostcode :: Traversal' ReOCError Text) genReOCError genText
    , affineLaws "ReOCError.invalidPositive" (invalidPositive :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.invalidPercentage" (invalidPercentage :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.invalidGrossWeight" (invalidGrossWeight :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.invalidReviewMonths" (invalidReviewMonths :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.invalidPassMark" (invalidPassMark :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.mostElements" (mostElements :: Traversal' ReOCError Natural) genReOCError genNatural
    , affineLaws "ReOCError.givenElements" (givenElements :: Traversal' ReOCError Natural) genReOCError genNatural
    ]