gdp-0.0.0.2: Reason about invariants and preconditions with ghosts of departed proofs.

Copyright(c) Matt Noonan 2018
LicenseBSD-style
Maintainermatt.noonan@gmail.com
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Arguments

Description

 

Synopsis

Documentation

class Argument (f :: k1) (n :: k2) Source #

Get or modify a type within a larger type. This is entirely a type-level operation, there is nothing corresponding to a value access or update.

Associated Types

type GetArg f n :: k1 Source #

type SetArg f n x :: k1 Source #

Instances

Argument * Nat (Equals x y) 1 Source # 

Associated Types

type GetArg 1 (Equals x y) (f :: Equals x y) (n :: 1) :: k1 Source #

type SetArg 1 (Equals x y) (f :: Equals x y) (n :: 1) x :: k1 Source #

Argument * Nat (Equals x y) 0 Source # 

Associated Types

type GetArg 0 (Equals x y) (f :: Equals x y) (n :: 0) :: k1 Source #

type SetArg 0 (Equals x y) (f :: Equals x y) (n :: 0) x :: k1 Source #

Argument * * (Either a b) RHS Source # 

Associated Types

type GetArg RHS (Either a b) (f :: Either a b) (n :: RHS) :: k1 Source #

type SetArg RHS (Either a b) (f :: Either a b) (n :: RHS) x :: k1 Source #

Argument * * (Either a b) LHS Source # 

Associated Types

type GetArg LHS (Either a b) (f :: Either a b) (n :: LHS) :: k1 Source #

type SetArg LHS (Either a b) (f :: Either a b) (n :: LHS) x :: k1 Source #

Argument * * (Equals x y) RHS Source # 

Associated Types

type GetArg RHS (Equals x y) (f :: Equals x y) (n :: RHS) :: k1 Source #

type SetArg RHS (Equals x y) (f :: Equals x y) (n :: RHS) x :: k1 Source #

Argument * * (Equals x y) LHS Source # 

Associated Types

type GetArg LHS (Equals x y) (f :: Equals x y) (n :: LHS) :: k1 Source #

type SetArg LHS (Equals x y) (f :: Equals x y) (n :: LHS) x :: k1 Source #

data LHS Source #

Position: the left-hand side of a type.

Instances

Argument * * (Either a b) LHS Source # 

Associated Types

type GetArg LHS (Either a b) (f :: Either a b) (n :: LHS) :: k1 Source #

type SetArg LHS (Either a b) (f :: Either a b) (n :: LHS) x :: k1 Source #

Argument * * (Equals x y) LHS Source # 

Associated Types

type GetArg LHS (Equals x y) (f :: Equals x y) (n :: LHS) :: k1 Source #

type SetArg LHS (Equals x y) (f :: Equals x y) (n :: LHS) x :: k1 Source #

type GetArg * * (Either a b) LHS Source # 
type GetArg * * (Either a b) LHS = a
type GetArg * * (Equals x y) LHS Source # 
type GetArg * * (Equals x y) LHS = x
type SetArg * * (Either a b) LHS a' Source # 
type SetArg * * (Either a b) LHS a' = Either a' b
type SetArg * * (Equals x y) LHS x' Source # 
type SetArg * * (Equals x y) LHS x' = Equals x' y

data RHS Source #

Position: the right-hand side of a type.

Instances

Argument * * (Either a b) RHS Source # 

Associated Types

type GetArg RHS (Either a b) (f :: Either a b) (n :: RHS) :: k1 Source #

type SetArg RHS (Either a b) (f :: Either a b) (n :: RHS) x :: k1 Source #

Argument * * (Equals x y) RHS Source # 

Associated Types

type GetArg RHS (Equals x y) (f :: Equals x y) (n :: RHS) :: k1 Source #

type SetArg RHS (Equals x y) (f :: Equals x y) (n :: RHS) x :: k1 Source #

type GetArg * * (Either a b) RHS Source # 
type GetArg * * (Either a b) RHS = b
type GetArg * * (Equals x y) RHS Source # 
type GetArg * * (Equals x y) RHS = y
type SetArg * * (Either a b) RHS b' Source # 
type SetArg * * (Either a b) RHS b' = Either a b'
type SetArg * * (Equals x y) RHS y' Source # 
type SetArg * * (Equals x y) RHS y' = Equals x y'

data Arg n Source #

A specialized proxy for arguments.

Constructors

Arg 

arg :: Arg n Source #

Inhabitant of the argument proxy.