I had quite the frustrating hour with Suave trying to combine Webparts. In theory it is very simple:
Function1-that-returns-Webpart >=> Function2-that-returns-Webpart
In practice I kept getting an error “Expecting a type supporting the operator ‘>=>’ but given a function type. You may be missing an argument to a function” when trying to run this (thinned out) code:
let getTemplate : Webpart = OK "..." >=> Writers.setMimeType "application/json; charset=utf-8" let route = choose [ pathScan Path.Assets.templateById getTemplate ] startWebServer config route
The problem – a missing open Suave.Operators
– and without it F# didn’t know what >=> was. I guess it was trying to treat >=> as an inline function, but how it goes from there to that error message presently baffles me.
Pingback: F# Weekly #10, 2017 – Sergey Tihon's Blog