liblawless-0.17.0: Source/Arbitrary.hs
{-# OPTIONS_GHC -Wno-orphans#-}
{-|
Module: Arbitrary
Description: Provides Arbitrary instances of several types in this and other libraries.
Copyright: © 2016 All rights reserved.
License: GPL-3
Maintainer: Evan Cofsky <>
Stability: experimental
Portability: POSIX
-}
module Arbitrary where
import Lawless
import Test.QuickCheck (Arbitrary(..), listOf1, suchThat)
import Text
import Time
import Textual.SepList
import Data.Time
import Data.Time.Clock()
import Data.Time.Calendar()
import Data.Text (Text)
instance Arbitrary (SepList Char) where
arbitrary =
foldl1Of folded (<>) ∘ over traversed sepList <$> listOf1 arbitrary
instance Arbitrary Text where
arbitrary = view packed <$> listOf1 arbitrary
instance Arbitrary Day where
arbitrary = toEnum <$> arbitrary
instance Arbitrary DiffTime where
arbitrary =
fromRational <$> suchThat arbitrary (\t → t ≥ 0.0 ∧ t ≤ 86401.0)
instance Arbitrary UTCTime where
arbitrary =
UTCTime <$> arbitrary <*> arbitrary
instance Arbitrary Time where
arbitrary = review _Time <$> arbitrary