!9Z4U      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTNone"#_ taskwarriorKThe mask is a newtype to provide Aeson instances from and to a JSON string. taskwarrior4Represents the state of a child in a recurring task.None"#_  taskwarrior`A task can have the priorities high, medium, low or none, which is modeled via a Maybe Priority. taskwarriorAParses a JSON string to a Maybe Priority, fails on anything else.None"#_  taskwarrior/Converts a time to the taskwarrior time format. taskwarrior6Parses a JSON string from the taskwarrior time format.None"#__ taskwarrior<A task can be pending, deleted, completed, waiting or recurring. If I task is a recurring child or a recurring parent depends on the existence of the corresponding fields and can not be told from the status field alone. It is recommended to access the fields only by pattern matching since the getters are partial.( taskwarriorITakes all information that is dependent on the status from a JSON object.U taskwarrior/Gathers all fields for a RecurringChild status.V taskwarrior0Gathers all fields for a RecurringParent status.) taskwarriorA list of Pairs can be used to construct a JSON object later. The result of Status.toPairs is supposed to be combined with the rest of the fields of a task. !%"#$&'() !%"#$&'()None"#X_q. taskwarrior./01./01None"#_8 taskwarrior6A field will in practice only be a number or a string.88None"#$_*g9 taskwarriorYA Tag can be basically any string. But beware: Special symbols work but might clash with task cli syntax.: taskwarrior/A Task represents a task from taskwarrior. See  -https://taskwarrior.org/docs/design/task.html for the specification of the fields. The specification demands, that the existence of some fields is dependent on the status of the task. Those fields are therefore bundled in status as a sum-type.All fields in an imported task which are not part of the specification will be put in the UDA (user defined attributes) HashMap.Since the json can have multiple semantically equivalent representations of a task first serializing and then deserializing is not identity. But deserializing and then serializing should be. (Thus making serializing and deserializing idempotent.)K taskwarriorMakes a Task with the given mandatory fields uuid, entry time and description. See createTask for a non-pure version which needs less parameters.9:;=C@<>?ABDEFGHIJK:;=C@<>?ABDEFGHIJ9KNone"#_4lQ taskwarriorOUses `task export` with a given filter like `["description:Milk", "+PENDING"]`.R taskwarriordGives all uuids matching the given filter (e.g. `["description:Milk", "+PENDING"]`). This calls the task binary.S taskwarrior)Uses task import to save the given tasks.T taskwarriorThis will create a Task. I runs in IO to create a UUID and get the currentTime. This will not save the Task to taskwarrior. If you want to create a task, with certain fields and save it, you could do that like this: MnewTask <- createTask "Buy Milk" saveTasks [newTask { tags = ["groceries"] }]QRSTQSTRW       !"#$%&'()*+, -./01234556789:;<=>?@@AB67CDEFGHIJKLMNOPQRSTUVWXYZtaskwarrior-0.1.2.1-inplaceTaskwarrior.MaskTaskwarrior.PriorityTaskwarrior.TimeTaskwarrior.StatusTaskwarrior.AnnotationTaskwarrior.UDATaskwarrior.TaskTaskwarrior.IOMaskmask MaskState $fToJSONMask$fFromJSONMask $fEqMaskState$fShowMaskState$fEnumMaskState$fReadMaskState$fOrdMaskState$fBoundedMaskState$fEqMask $fReadMask $fOrdMask $fShowMaskPriorityparseMay$fToJSONPriority $fEqPriority$fShowPriority$fReadPriority$fEnumPriority $fOrdPriority$fBoundedPrioritytoValueparseStatusPendingDeleted CompletedWaitingRecurringParentRecurringChildendwaitrecurimaskparentparseFromObjecttoPairs $fEqStatus $fShowStatus $fReadStatus $fOrdStatus Annotationentry description$fToJSONAnnotation$fFromJSONAnnotation$fEqAnnotation$fShowAnnotation$fReadAnnotation$fOrdAnnotationUDATagTaskstatusuuidstartmodifieddueuntil annotations scheduledprojectprioritydependstagsudamakeTask $fToJSONTask$fFromJSONTask$fEqTask $fShowTask $fReadTaskgetTasksgetUUIDs saveTasks createTaskparseChildFromObjectparseParentFromObject