crucible-0.7: Crucible is a library for language-agnostic symbolic simulation
Copyright(c) Galois Inc 2013-2016
LicenseBSD3
MaintainerJoe Hendrix <jhendrix@galois.com>
Safe HaskellSafe-Inferred
LanguageHaskell2010

Lang.Crucible.Utils.Structural

Description

This module declares template Haskell primitives so that it is easier to work with GADTs that have many constructors.

Synopsis

Documentation

structuralPretty :: TypeQ -> [(TypePat, ExpQ)] -> ExpQ Source #

structuralPretty tp generates a function with the type forall f ann. (forall x. f x -> Doc ann) -> (forall x. tp f x -> Doc ann) suitable for instantiating the PrettyApp class.