Hi, I have this monstrous f# 2.0 program
My mono version is 
Mono JIT compiler version 2.9 (master/f593354 Sun Dec 26 03:15:55 EET 2010)
Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
 TLS:           __thread
 SIGSEGV:       altstack
 Notifications: epoll
 Architecture:  x86
 Disabled:      none
 Misc:          softdebug 
 LLVM:          supported, not enabled.
 GC:            Included Boehm (with typed GC and Parallel Mark)
//---------------------------------------------
module Main
let rec gcd x y = 
    if y = 0 then x
    else gcd y (x%y)
let main =
    printfn "%i" (gcd 4 2) 
main
//-----------------------------------------------
And the problem is that output from running the program is as follows:
Stacktrace:
at (wrapper managed-to-native) System.Reflection.MonoMethodInfo.get_parameter_info (intptr,System.Reflection.MemberInfo) <0xffffffff
  at System.Reflection.MonoMethodInfo.GetParametersInfo (intptr,System.Reflection.MemberInfo) <0x00013
  at System.Reflection.MonoCMethod.GetParameters () <0x00015
  at System.Reflection.MonoCMethod.Invoke (object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x00035
  at System.Reflection.MonoCMethod.Invoke (System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo) <0x00024
  at System.Reflection.ConstructorInfo.Invoke (object[]) <0x0003f
  at System.Activator.CreateInstance (System.Type,bool) <0x0017c
  at System.Activator.CreateInstance (System.Type) <0x00012
  at Microsoft.FSharp.Reflection.FSharpValue.MakeFunction (System.Type,Microsoft.FSharp.Core.FSharpFunc2<object, object>) <0x00145>
  at Microsoft.FSharp.Core.PrintfImpl.capture@529<b, c, d> (Microsoft.FSharp.Core.FSharpFunc2, Microsoft.FSharp.Core.FSharpFunc`2<char, Microsoft.FSharp.Core.Unit>, Microsoft.FSharp.Core.FSharpFunc`2,string,int,Microsoft.FSharp.Collections.FSharpList1<object>,System.Type,int) <0x00147>
  at Microsoft.FSharp.Core.PrintfImpl.gprintf<b, c, d, a> (Microsoft.FSharp.Core.FSharpFunc2, Microsoft.FSharp.Core.FSharpFunc`2<char, Microsoft.FSharp.Core.Unit>, Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.PrintfFormat4<a, b, c, d>) <0x000dd>
  at Microsoft.FSharp.Core.PrintfModule.kprintf_imperative<a, b, c> (Microsoft.FSharp.Core.FSharpFunc2,b,Microsoft.FSharp.Core.FSharpFunc2<char, Microsoft.FSharp.Core.Unit>,Microsoft.FSharp.Core.PrintfFormat4) <0x00058
  at Microsoft.FSharp.Core.PrintfModule.PrintFormatToTextWriterThen (Microsoft.FSharp.Core.FSharpFunc2<Microsoft.FSharp.Core.Unit, TResult>,System.IO.TextWriter,Microsoft.FSharp.Core.PrintfFormat4) <0x0004d
  at Microsoft.FSharp.Core.PrintfModule.PrintFormatLineToTextWriter (System.IO.TextWriter,Microsoft.FSharp.Core.PrintfFormat`4) <0x0004d
  at .$Main.main@ () <0x00042
Native stacktrace:
mono() [0x80dc13b]
 mono() [0x811c65b]
 mono() [0x8059a11]
 [0x7af40c]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228214]
 mono() [0x8228282]
 mono() [0x822991e]
 mono() [0x822aa9d]
 mono(mono_array_new_specific+0xea) [0x813ba9a]
 mono() [0x81c63a1]
 mono() [0x8149ac8]
 [0xc04328]
 [0xc042e4]
 [0xc042be]
 [0xc0455e]
 [0xc0451d]
 [0xc044d8]
 [0xc0349d]
 [0xc0330b]
 [0xc02f9e]
 [0xbfe960]
 [0xbfe6c6]
 [0xbfe571]
 [0xbfe4de]
 [0xbfe44e]
 [0xbf9d2b]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
 [0x9bf0724]
Debug info from gdb:
Could not attach to process.  If your uid matches the uid of the target
process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try
again as the root user.  For more details, see /etc/sysctl.d/10-ptrace.conf
ptrace: Operation not permitted.
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
Aborted
It is a huge problem with mono or f#? By the way, the same function works when using pattern matching instead of "if".