    module Propellor.Property.Installer.Types where

    -- | The disk device to install to.
    newtype TargetDiskDevice = TargetDiskDevice FilePath
            deriving (Read, Show)

    data DiskEraseConfirmed = DiskEraseConfirmed
            deriving (Read, Show)

    -- | Class of user input that an installer might prompt for.
    class UserInput i where
            -- | Get the disk device the user selected to install to.
            targetDiskDevice :: i -> Maybe TargetDiskDevice
            -- | Check if the user has confirmed they want to erase the target
            -- disk device.
            diskEraseConfirmed :: i -> Maybe DiskEraseConfirmed