src/HOL/Library/Monad_Syntax.thy
changeset 52622 e0ff1625e96d
parent 46143 c932c80d3eae
child 53616 ff37dc246b10
equal deleted inserted replaced
52621:0d0c20a0a34f 52622:e0ff1625e96d
    67   "_do_cons (_do_let p t) (_do_final s)"
    67   "_do_cons (_do_let p t) (_do_final s)"
    68     == "_do_final (let p = t in s)"
    68     == "_do_final (let p = t in s)"
    69   "_do_block (_do_final e)" => "e"
    69   "_do_block (_do_final e)" => "e"
    70   "(m >> n)" => "(m >>= (\<lambda>_. n))"
    70   "(m >> n)" => "(m >>= (\<lambda>_. n))"
    71 
    71 
    72 setup {*
    72 adhoc_overloading
    73   Adhoc_Overloading.add_overloaded @{const_name bind}
    73   bind Set.bind Predicate.bind Option.bind List.bind
    74   #> Adhoc_Overloading.add_variant @{const_name bind} @{const_name Set.bind}
       
    75   #> Adhoc_Overloading.add_variant @{const_name bind} @{const_name Predicate.bind}
       
    76   #> Adhoc_Overloading.add_variant @{const_name bind} @{const_name Option.bind}
       
    77   #> Adhoc_Overloading.add_variant @{const_name bind} @{const_name List.bind}
       
    78 *}
       
    79 
    74 
    80 end
    75 end