diff --git a/loopy/flags.py b/loopy/flags.py
index 58e6e0957f93592911b93263957066576db70f9f..1ccaf7b3314cb76358c3d261ccc0d3e2916ff182 100644
--- a/loopy/flags.py
+++ b/loopy/flags.py
@@ -29,22 +29,77 @@ import re
 
 class Flags(Record):
     """
+    Unless otherwise specified, these flags are Boolean-valued
+    (i.e. on/off).
+
     .. rubric:: Code-generation flags
 
     .. attribute:: annotate_inames
+
+        When generating code for inames, annotate them with
+        comments if it is not immediately apparent which
+        iname is being referred to (such as for inames mapped
+        to constants or OpenCL group/local IDs).
+
     .. attribute:: trace_assignments
+
+        Generate code that uses *printf* in kernels to trace the
+        execution of assignment instructions.
+
     .. attribute:: trace_assignment_values
 
+        Like :attr:`trace_assignments`, but also trace the
+        assigned values.
+
     .. rubric:: Invocation-related flags
 
     .. attribute:: skip_arg_checks
+
+        Do not do any checking (data type, data layout, shape,
+        etc.) on arguments for a minor performance gain.
+
     .. attribute:: no_numpy
+
+        Do not check for or accept :mod:`numpy` arrays as
+        arguments.
+
     .. attribute:: return_dict
+
+        Have kernels return a :class:`dict` instead of a tuple as
+        output. Specifically, the result of a kernel invocation
+        with this flag is a tuple ``(evt, out_dict)``, where
+        *out_dict* is a dictionary mapping argument names to their
+        output values. This is helpful if arguments are inferred
+        and argument ordering is thus implementation-defined.
+
+        See :meth:`CompiledKernel.__call__`.
+
     .. attribute:: write_wrapper
+
+        Print the generated Python invocation wrapper.
+        Accepts a file name as a value. Writes to
+        ``sys.stdout`` if none is given.
+
     .. attribute:: highlight_wrapper
+
+        Use syntax highlighting in :attr:`write_wrapper`.
+
     .. attribute:: write_cl
+
+        Print the generate OpenCL kernel.
+        Accepts a file name as a value. Writes to
+        ``sys.stdout`` if none is given.
+
     .. attribute:: highlight_cl
+
+        Use syntax highlighting in :attr:`write_cl`.
+
     .. attribute:: edit_cl
+
+        Invoke an editor (given by the environment variable
+        :envvar:`EDITOR`) on the generated kernel code,
+        allowing for tweaks before the code is passed on to
+        the OpenCL implementation for compilation.
     """
 
     def __init__(